2015-11-07 107 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更有效。

相關問題