Perl中定时器alarm的die与kill
来源:互联网 发布:mac bash 改为 user 编辑:程序博客网 时间:2024/05/21 14:04
在perl中运行一些独立的程序时可能会挂起会处理较长时间,这种情况下可以使用alarm
#!/usr/bin/perl -W
$timeout=5;
eval {
local $SIG{ALRM} = sub { die "$timeout second,run alarm\n" };#定义alarm运行的程序,这里设定为die并打印信息。
alarm $timeout; #设定 5秒后进入超时处理
sleep 20;
print "in alarm eval\n";#因为5秒后会进入超时处理,die会中断eval块,所以这里并不会运行。
alarm (0); #所需的程序已经运行完成,取消超时处理
};
print "out of alarm eval\n"
#####后续处理
if ($@) {
if ($@ =~ /die in sig alarm/) {
print "caught the error";
}
else {
print $@;
}
}
}
如果将sleep改为2,小于timeout时间,则不会进入超时处理,则eval块内的print也会运行。
0
may be supplied to cancel the previous timer without starting a new one. $SIG{ALRM} = sub {
system("killall -9 firefox") or warn "Fail to kill firefox process \n";
print join '', time2str("[%Y-%m-%d %H:%M:%S] ", time), "Wait too long, kill the firefox process \n";
};
alarm 120; #120s后kill掉firefox进程。
system(“firefox”);
alarm 0; #取消超时处理
- Perl中定时器alarm的die与kill
- Perl中定时器alarm的die与kill
- Perl中的alarm、eval、die的联合使用
- perl中or die....的原理
- Linux下的定时器:alarm()与setitimer()
- Linux下的定时器:alarm()与setitimer()
- Linux下的定时器:alarm()与setitimer()
- Linux下的定时器:alarm()与setitimer()
- Linux下的定时器:alarm()与 setitimer()
- Linux下的定时器:alarm()与setitimer()
- Linux下的定时器:alarm()与setitimer()
- Linux下的定时器:alarm()与setitimer()
- Linux下的定时器:alarm()与setitimer()
- perl进程终止函数die/warn/exit/kill
- PHP中die()与exit()的区别
- PHP中die()与exit()的区别
- PHP中die()与exit()的区别
- PHP中die()与exit()的区别
- Workspace in use or cannot be created, choose a different one.--错误解决办法
- WebDriver-Java 截屏功能
- Objective-C中NSString的isEqual、isEqualToString、== 区别
- java.lang.UnsupportedClassVersionError: Bad version number in .class file
- Flushing out pdflush
- Perl中定时器alarm的die与kill
- 过程绩效评估系统---(1)软件级指标体系建立
- LoadRunner使用动态链接库技术
- monotouch之lib文件的link(完整版本)
- 笔记
- Android Matrix类以及ColorMatrix类详解
- JS判断Session过期
- .NET Framework
- 加速Web开发的9款知名HTML5框架