...

Source file src/github.com/opencontainers/runc/state.go

Documentation: github.com/opencontainers/runc

     1  package main
     2  
     3  import (
     4  	"encoding/json"
     5  	"os"
     6  
     7  	"github.com/opencontainers/runc/libcontainer"
     8  	"github.com/opencontainers/runc/libcontainer/utils"
     9  	"github.com/urfave/cli"
    10  )
    11  
    12  var stateCommand = cli.Command{
    13  	Name:  "state",
    14  	Usage: "output the state of a container",
    15  	ArgsUsage: `<container-id>
    16  
    17  Where "<container-id>" is your name for the instance of the container.`,
    18  	Description: `The state command outputs current state information for the
    19  instance of a container.`,
    20  	Action: func(context *cli.Context) error {
    21  		if err := checkArgs(context, 1, exactArgs); err != nil {
    22  			return err
    23  		}
    24  		container, err := getContainer(context)
    25  		if err != nil {
    26  			return err
    27  		}
    28  		containerStatus, err := container.Status()
    29  		if err != nil {
    30  			return err
    31  		}
    32  		state, err := container.State()
    33  		if err != nil {
    34  			return err
    35  		}
    36  		pid := state.BaseState.InitProcessPid
    37  		if containerStatus == libcontainer.Stopped {
    38  			pid = 0
    39  		}
    40  		bundle, annotations := utils.Annotations(state.Config.Labels)
    41  		cs := containerState{
    42  			Version:        state.BaseState.Config.Version,
    43  			ID:             state.BaseState.ID,
    44  			InitProcessPid: pid,
    45  			Status:         containerStatus.String(),
    46  			Bundle:         bundle,
    47  			Rootfs:         state.BaseState.Config.Rootfs,
    48  			Created:        state.BaseState.Created,
    49  			Annotations:    annotations,
    50  		}
    51  		data, err := json.MarshalIndent(cs, "", "  ")
    52  		if err != nil {
    53  			return err
    54  		}
    55  		os.Stdout.Write(data)
    56  		return nil
    57  	},
    58  }
    59  

View as plain text