2010-12-12 41 views

回答

17

試試這個,它在後臺啓動你的命令,將它的PID存儲在$ P中,等待一段時間並用SIGHUP殺死它。

yourCommand & PID=$! 
sleep ${someMinutes}m 
kill -HUP $PID 

乾杯

PS:即假定知道牛米(分鐘)睡眠,否則,你可能想要做一些數學:)

+0

+1和'$睡眠來實現((*分鐘60))':) – khachik 2010-12-12 20:54:43

+0

khachik,這是鍛鍊的受過教育的讀者;) – 2010-12-12 20:55:22

+0

謝謝!這實際上就是我剛剛寫的perl,但很高興看到它只是一個shell的成語。我仍然喜歡預先建立的腳本,如果有人知道它,但我會接受這個答案。 – 2010-12-12 20:59:21

10
n=5 
some_command & 
pid=$! 
at now + $n minutes <<<"kill -HUP $pid" 

在使用at的好處等待sleep是您的腳本不會阻止等待睡眠過期。你可以去做其他事情,at將在指定的時間異步激發。根據您的腳本,這可能是一個非常重要的功能。

+0

我給這個+1作爲異步功能,雖然阻塞是我的想法。 – 2010-12-12 21:05:30