Sam*_*yer 6 python windows cmd exec
我在Windows 7上使用Python 2.6.我有Windows .cmd文件,它调用Python来运行CherryPy Web服务器(版本3.1.2).我通过在Windows CMD shell中的提示符处执行它来启动此.cmd文件.当CherryPy注意到其中一个依赖文件发生了变化时,它会重新启动.在Windows上的此配置中会出现一些问题,因为CherryPy用于重新启动自身的调用是
os.execv(sys.executable, args)
Run Code Online (Sandbox Code Playgroud)
但是您无法在.cmd文件上调用Python可执行文件.我已经设法通过各种Python体操绕过了这个问题,现在我通过调用(基本上)重新启动它
os.execv(sys.argv[0], args)
Run Code Online (Sandbox Code Playgroud)
但重新启动的进程与键盘分离; 它将捕获Ctrl-C,然后我被问到
Terminate batch job (Y/N)?
Run Code Online (Sandbox Code Playgroud)
但是Y或NI类型不是由终止.cmd文件捕获的,而是由Windows CMD shell捕获的,它会响应
'Y' is not recognized as an internal or external command, operable program or batch file.
Run Code Online (Sandbox Code Playgroud)
那么我如何在Windows中进行设置以使重新启动的进程保持在Unix中我称之为"前景"的位置?
Ara*_*ash -3
你可以像这个例子一样使用 subprocess.call 方法
\n\nimport subprocess\n\nretcode = subprocess.call(["ls", "-l"])\n
Run Code Online (Sandbox Code Playgroud)\n\n有关子流程类的更多信息,请参阅此链接:
\n\n\n 归档时间: |
|
查看次数: |
2388 次 |
最近记录: |