所以我正在运行一个 python 脚本: 它在后台启动一个日志程序 做了一堆东西。 然后停止记录程序。
所以我有两个问题: 1)我知道要运行后台程序,我可以调用: os.system("test_log_prog &") 但我也可以这样做: os.system("test_echo_prog > logfile.log &") 或类似的东西?
2) 如何关闭 test_echo_prog? 对于这个程序,我使用的是 pkill "test_log_prog"但由于某种原因它在使用 > logfile.log 时不起作用......
提前致谢!
干杯!
最佳答案
您可以使用 Python 的 os.kill 通过其 pid 终止进程,向其发送一个几乎任意的信号,如 SIGTERM 或 SIGINT。如果它不会死,请尝试 SIGKILL。
您可以使用 pidof 程序查找进程的 pid,或者如果您使用 subprocess.Popen,您可以从 popen 对象中获取 pid,而无需生成另一个子程序。 os.system 不再受到青睐,至少与 subprocess.Popen 相比是这样。
关于python - 从另一个程序中杀死后台程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12150321/