_exec 897 B

123456789101112131415161718192021222324252627282930313233
  1. #!/usr/bin/env python3
  2. import os
  3. import sys
  4. import pwd
  5. from optparse import OptionParser
  6. parser = OptionParser()
  7. parser.add_option("--id", dest="id",
  8. help="set netns id = ip")
  9. parser.add_option("--cmd", dest="cmd",
  10. help="cmd to execute in network-namespace")
  11. parser.add_option("--user", dest="user",
  12. help="username")
  13. (options, args) = parser.parse_args()
  14. print("option",options)
  15. if options.id is None:
  16. print("please set network-namespace --id=xx")
  17. sys.exit()
  18. if options.cmd is None:
  19. print("exec: please set --cmd=xxxx")
  20. sys.exit()
  21. cmd="sudo ip netns exec \"green_1{id}\" su \"{user}\" -c '{cmd}' " # ok
  22. #cmd="sudo /opt/netns/exec \"green_{id}\" su \"{user}\" -c 'screen -d -m -S \"green_{id}\" \"{cmd}\"' " # ok
  23. print(cmd)
  24. cmd2=cmd.format(user=options.user,id=options.id,cmd=options.cmd)
  25. print(cmd2)
  26. os.system(cmd2)