1

所以我正在运行一个 python 脚本:它在后台启动一个日志程序 做一堆东西。然后停止记录程序。

所以我有两个问题:1)我知道要运行一个后台程序,我可以调用:os.system("test_log_prog &") 但我也可以这样做:os.system("test_echo_prog > logfile.log &") 什么的相等的?

2) 如何关闭 test_echo_prog?对于该程序,我使用的是 pkill "test_log_prog" 但由于某种原因,它在使用 > logfile.log 时不起作用.....

提前致谢!

干杯!

4

1 回答 1

3

你可以使用 Python 的 os.kill 通过它的 pid 杀死一个进程,向它发送一个像 SIGTERM 或 SIGINT 一样的任意信号。如果它不会死,请尝试 SIGKILL。

您可以使用 pidof 程序查找进程的 pid,或者如果您使用 subprocess.Popen,您可以从 popen 对象中获取 pid,而无需生成另一个子程序。os.system 不再受到青睐,至少与 subprocess.Popen 相比没有。

于 2012-08-27T22:20:13.013 回答