2015-11-07 130 views
4

是否有像nodemon那样的东西,用于监视文件更改并重新启动perl脚本?类似于nodemon的工具,用于perl

我的Perl脚本只是一个while循环。

我试图谷歌它,但结果要么是关于mod_perl或无关紧要。

任何想法?

我使用的是Mac OS

+0

是[File :: Monitor](http://metacpan.org/module/File::Monitor) 你正在寻找什么? – Borodin

+0

这取决于您正在使用哪种操作系统。 – Buxmaniak

+0

据我了解,你想在程序本身改变时重新启动程序吗? – Schwern

回答

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); 

这可以通过做出的东西钩住OS X文件系统事件服务更换File::Monitor更有效。

相关问题