我只是在cmd中有以下命令
perl csv2rrd3.pl
Run Code Online (Sandbox Code Playgroud)
但它总是运行很长时间.有没有办法为它设置超时?或者我应该在perl脚本中做到这一点?如何?
谢谢
在Perl内部,您可以设置闹钟在几秒钟后熄灭.然后,您可以使用信号处理程序来捕获事件.任何时候只能激活一个警报
{ # enter new scope
# set signal handler
local $SIG{ALRM} = sub {
# do cleanup, like closing sockets or whatever
print STDERR "exited with ALARM\n";
exit;
};
alarm 30; # try half a minute
...; # do expensive stuff
}
Run Code Online (Sandbox Code Playgroud)
从Windows命令行,您可以先start在自己的窗口中使用perl脚本,使用timeout等待x秒的命令(此处为2)将其链接,然后再使用taskkill命令将其链接以终止进程.
start perl csv2rrd3.pl & timeout -t 2 & taskkill /IM perl.exe
Run Code Online (Sandbox Code Playgroud)
上面的行会杀死每个perl进程.要仅杀死刚开始的一个,您可以使用自定义窗口标题.
start "KILLME" perl csv2rrd3.pl & timeout -t 2 & taskkill /FI "WINDOWTITLE eq KILLME" /IM perl.exe
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2154 次 |
| 最近记录: |