mul*_*rse 16 windows command-line process
我有一个 Python 脚本,我想在 Windows 上将其作为后台进程运行。
我可以在 Linux 上这样做:
python script.py &
Run Code Online (Sandbox Code Playgroud)
然后从终端断开进程:
disown
Run Code Online (Sandbox Code Playgroud)
在 Windows 上,到目前为止我所拥有的就是:
start /b python script.py
Run Code Online (Sandbox Code Playgroud)
但是,如果我关闭 CMD 窗口,脚本将停止运行。我在这里缺少任何额外的命令来保持脚本在后台运行吗?
start应该已经是正确的方向了。但是,/b将其附加到同一个控制台。现在的问题是,当控制台窗口关闭时,与此控制台关联的任何进程也将关闭。
您可以使用startwithout /b,然后它将在新控制台中运行。如果你想在没有控制台窗口的情况下在后台运行它,那么你需要使用 VBScript 或第三方工具:以完全隐藏的方式运行批处理文件
但是,在这种情况下,您将不会再看到 stdout/stderr 输出。不过,您可以将它重定向到一个文件,方法是将其包装在cmd /c your_command > stdout.txt 2> stderr.txt调用中并通过上述方法之一(VBScript、第三方工具等)启动该调用。
或者,您也可以在退出之前隐藏自己的控制台窗口。我只是写了一个小单行程序,它正是这样做的(源代码基本上是ShowWindow(GetConsoleWindow(), SW_HIDE)):http : //share.cherrytree.at/showfile-24286/hide_current_console.exe
这样,您可以使用start /b, 当您想“关闭”您的控制台(技术上隐藏它)时,您将运行hide_current_console & exit它会隐藏控制台,然后关闭 cmd.exe 进程(不是 python 进程) - 在一行中,因为exit在控制台已隐藏后您无法键入。
| 归档时间: |
|
| 查看次数: |
45738 次 |
| 最近记录: |