【发布时间】:2013-12-04 04:41:18
【问题描述】:
我正在使用 python 2.7
cmd = "sudo start service/newservice db=temp"
p = subprocess.Popen(shlex.split(cmd), stderr=subprocess.STDOUT)
上面的命令工作正常,并且产生了预期的过程。
cmd = "sudo stop service/newservice db=temp"
p = subprocess.Popen(shlex.split(cmd), stderr=subprocess.STDOUT)
调用上述方法时在同一个文件中。它给出了错误。
traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/subprocess.py", line 672, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1213, in _execute_child
raise child_exception
TypeError: must be encoded string without NULL bytes, not str
【问题讨论】:
-
也许您可以尝试从 python 停止第一个进程,而不是启动另一个进程来杀死第一个进程。详情见此链接:stackoverflow.com/questions/4084322/…
-
其中可能插入了一些奇怪的字符,请参见:stackoverflow.com/questions/15203106/…
-
cmd与print(repr(cmd))看起来如何?
标签: python python-2.7 subprocess