是否可以通过perl脚本向进程ID发送SIG STOP,然后,如果超过一段时间,让1分钟,将SIG CONT发送到PID,除非"其他人"已经将此SIG CONT发送给流程了吗?
感谢。
答案 0 :(得分:2)
进程可以使用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: $!";
并且不用担心第二个信号。