是否有类似nodemon
的东西,它监视文件更改并重新启动perl脚本?
我的perl脚本只是一个循环。
我尝试谷歌,但结果是mod_perl
或无关。
有什么想法吗?
我正在使用Mac OS
答案 0 :(得分:3)
我不知道像perl的nodemon这样的工具,除非有一个工具在更改时通常重新启动任何程序。这是我一起敲的一个。
#!/usr/bin/env perl
use strict;
use warnings;
use v5.10;
use File::Monitor;
use Child qw(child);
sub start_program {
my $program = shift;
return child {
exec $^X, $program, @ARGV;
};
}
sub restart_program {
my($program, $child) = @_;
$child->kill("TERM");
return start_program($program);
}
sub monitor_program {
my $program = shift;
my $monitor = File::Monitor->new;
my $child = start_program($program);
say "PID: ".$child->pid;
$monitor->watch($program, sub {
$child = restart_program($program, $child);
});
while(1) {
sleep 1;
$monitor->scan;
}
}
monitor_program(shift);
通过将File::Monitor替换为挂钩到OS X文件系统事件服务的东西,可以提高效率。