打开和关闭perl进程,跨平台超时

时间:2012-02-20 21:39:27

标签: windows perl unix

如何在perl中超时后启动和结束进程? 我需要脚本在Windows和Unix中工作,我最好的选择是什么?

编辑:如何在Windows和unix上获取已启动进程的进程ID,以及如何在超时时将其终止

1 个答案:

答案 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";