加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

macos – 类似于nodemon的工具,用于perl

发布时间:2020-12-16 06:16:02 所属栏目:大数据 来源:网络整理
导读:是否有类似nodemon的东西,它监视文件更改并重新启动perl脚本? 我的perl脚本只是一个while循环. 我尝试谷歌,但结果是关于mod_perl或无关紧要. 有任何想法吗? 我正在使用Mac OS 解决方法 我不知道像perl的nodemon这样的工具,除非有一个工具在更改时通常重新
是否有类似nodemon的东西,它监视文件更改并重新启动perl脚本?

我的perl脚本只是一个while循环.

我尝试谷歌,但结果是关于mod_perl或无关紧要.

有任何想法吗?

我正在使用Mac OS

解决方法

我不知道像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文件系统事件服务的东西,可以提高效率.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读