如何在perl中超时后启动和结束进程? 我需要脚本在Windows和Unix中工作,我最好的选择是什么?
编辑:如何在Windows和unix上获取已启动进程的进程ID,以及如何在超时时将其终止
答案 0 :(得分:1)
您可以使用操作系统发出ALRM(警报)信号,然后您可以在设定的秒数后退出您的进程。
例如,如果在脚本的顶部放置:
alarm 300;
这将导致您的进程收到ALRM信号。这将立即终止您的进程,或者您可以捕获它并在进程终止之前清理它。
进一步阅读:http://perldoc.perl.org/functions/alarm.html
您可以捕获这样的信号:
$SIG{ALRM} = sub {
# Clean up process here and exit
};
响应您的编辑“编辑:如何在Windows和unix上获取已启动进程的进程ID以及如何在超时时终止它”
进程ID以perl形式存储在perl中,因此:
print 'My process ID is:', $$, "\n";