utils.go 661 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // +build linux
  2. package native
  3. import (
  4. "os"
  5. "github.com/docker/libcontainer"
  6. "github.com/docker/libcontainer/syncpipe"
  7. )
  8. func findUserArgs() []string {
  9. i := 0
  10. for _, a := range os.Args {
  11. i++
  12. if a == "--" {
  13. break
  14. }
  15. }
  16. return os.Args[i:]
  17. }
  18. // loadConfigFromFd loads a container's config from the sync pipe that is provided by
  19. // fd 3 when running a process
  20. func loadConfigFromFd() (*libcontainer.Config, error) {
  21. syncPipe, err := syncpipe.NewSyncPipeFromFd(0, 3)
  22. if err != nil {
  23. return nil, err
  24. }
  25. var config *libcontainer.Config
  26. if err := syncPipe.ReadFromParent(&config); err != nil {
  27. return nil, err
  28. }
  29. return config, nil
  30. }