2012-08-27 59 views
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 .....

在此先感謝!

乾杯!

回答

3

您可以使用Python的os.kill其kill命令來殺死一個過程,發送多數爲任意信號之如SIGTERM或SIGINT。如果它不死,請嘗試SIGKILL。

您可以使用pidof程序查找進程的pid,或者如果使用subprocess.Popen,您可以從popen對象獲取pid,而無需產生其他子程序。 os.system不再受到很大的青睞,至少不會與子進程相比.Popen。

+0

謝謝!使用Popen,它完全按照我的意願。 –