12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package nsinit
- import (
- "log"
- "github.com/codegangsta/cli"
- "github.com/docker/libcontainer/cgroups"
- "github.com/docker/libcontainer/cgroups/fs"
- "github.com/docker/libcontainer/cgroups/systemd"
- )
- var pauseCommand = cli.Command{
- Name: "pause",
- Usage: "pause the container's processes",
- Action: pauseAction,
- }
- var unpauseCommand = cli.Command{
- Name: "unpause",
- Usage: "unpause the container's processes",
- Action: unpauseAction,
- }
- func pauseAction(context *cli.Context) {
- if err := toggle(cgroups.Frozen); err != nil {
- log.Fatal(err)
- }
- }
- func unpauseAction(context *cli.Context) {
- if err := toggle(cgroups.Thawed); err != nil {
- log.Fatal(err)
- }
- }
- func toggle(state cgroups.FreezerState) error {
- container, err := loadContainer()
- if err != nil {
- return err
- }
- if systemd.UseSystemd() {
- err = systemd.Freeze(container.Cgroups, state)
- } else {
- err = fs.Freeze(container.Cgroups, state)
- }
- return err
- }
|