2015-08-29 17 views
1

我想控制一個產生的任務,在我的情況是一個bash腳本,然後運行另一個程序。我希望能夠暫停和恢復這些過程。我的程序是爲了能夠產生任何任務,所以我不能假設知道生成的進程是否會產生另一個進程或進程。如何在Mac OS X上以編程方式暫停/恢復進程及其子進程?

我使用NSTask啓動了該進程,並且可以控制原始進程,但不影響子進程。

任何幫助,將不勝感激。

回答

4

SIGSTOP信號做到這一點。使用負PID時,kill命令會將其發送到整個進程組。

kill -s SIGSTOP -$pid 

發送SIGCONT恢復。

+0

謝謝,完美的作品!我並不陌生於Mac或其他Unix,但我不是命令行上的高級用戶。 – John