2010-06-10 243 views
1

我正在運行一個執行持續時間過長的命令的腳本,所以我想中斷它。任何幫助?我試圖搜索很多,我已經指出了kill命令。雖然,我無法讓它工作。順便說一句,我使用的是Mac OS X.謝謝!如何在shell腳本中複製CTRL + C?

+0

更具體。你是否在後臺運行腳本?你是否在等待它完成?你的劇本是什麼?你想怎麼做?你想做什麼? – riwalk 2010-06-10 15:41:21

+0

基本上,我運行一個asr多播流,但無法弄清楚如何阻止它,所以我試圖做到這一點: asr server --source [source] --config [plist file] --debug | (sleep 30 && [CTRL + C]) 問題是我不知道如何複製CTRL + C – hassaanm 2010-06-10 15:55:55

回答

2

假設你有進程的PID,發送一個SIGINT信號:

kill -SIGINT PID 

如果你不具備的PID你可以嘗試pkillkillall,但他們少了幾分安全; PID是唯一識別過程的唯一方法。您產卵另一個進程右後PID應該在$!所以你可以將它保存然後

process-that-takes-a-long-time & 
pid=$! 
# other stuff 
kill -SIGINT $pid 
+0

如果我找不到PID,該怎麼辦?有沒有另一種方法來複制CTRL + C? – hassaanm 2010-06-10 15:51:49

+0

小心'killall'。在某些系統上,它類似於「停止」。 – 2010-06-10 19:52:23

0

要複製的Linux按Ctrl + C在Mac OS X,使用的終端上ctrl + C! 其相同的擊鍵組合 爲我工作(在Mac上的第一步)

編輯:我沒讀過腳本是在後臺運行。