0
是否可以通過perl腳本將SIG STOP發送到進程ID,然後如果過了一段時間(比如說1分鐘),可以發送SIG CONT到PID,除非「別人「已經將此SIG CONT發送給過程?sig在STOP中用Perl超時處理
謝謝。
是否可以通過perl腳本將SIG STOP發送到進程ID,然後如果過了一段時間(比如說1分鐘),可以發送SIG CONT到PID,除非「別人「已經將此SIG CONT發送給過程?sig在STOP中用Perl超時處理
謝謝。
進程可以使用waitpid
系統調用(使用WUNTRACED
/WCONTINUED
標誌)來監視子進程何時停止/恢復。這僅適用於受監視的進程是原始進程的子進程。但是不管孩子是否是孩子,您總是可以將信號SIGSTOP
/SIGCONT
發送到其他進程(前提是它們屬於同一用戶)。如果一個進程已經恢復運行,因爲它收到了SIGCONT
,發送第二個SIGCONT
是完全無害的。所以你可以做
kill 'STOP',$pid or die "cannot send STOP signal: $!";
sleep 60;
kill 'CONT',$pid or die "cannot send CONT signal: $!";
而不用擔心第二個信號。
嗨,不完全是,在60秒睡眠的中間,有人可以發送CONT信號,然後再次停止信號,因此將啓動「第一次」睡眠並且睡眠時間少於60秒。我希望我很清楚。 @redneb – Mojo
@Mojo你的要求很不明確。你必須給我們更多的細節。 – redneb