[問題] 如何讓特定程式只執行一段時間?
--------------------------------------------
run();
run();
run();
sub run{
if( !fork()){ # child
alarm 300;
system( "$cmd");
}
wait;
}
------------------------------------------
主程式喚起 run() 三次,每次執行 cmd 300 秒
其中 cmd 是一個持續執行的程式,除非被中斷
而同一時間,最多只能有一個 cmd 在執行
原本的想法是在 child process 中引起 alarm
不去處理這個 signal,讓 child process 自己終止
問題在於, child 執行 system 時,又另外開了一個 process
而 child 被中止後, cmd 卻還繼續執行
使得第二個 run 開始後,就有兩個 cmd 同時執行了
請問有什麼方法可以達到我的目的?
例如,能否取得 system 所開的 process 之 id?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.104.37.141
※ 編輯: roylee17 來自: 59.104.37.141 (08/22 18:25)
討論串 (同標題文章)
完整討論串 (本文為第 1 之 3 篇):
Perl 近期熱門文章
PTT數位生活區 即時熱門文章