守护一个 perl 脚本
Daemonize a perl script
目前我正在寻找一个 perl 脚本的守护进程。可悲的是,大多数答案都已过时,我实际上完全不明白如何开始守护进程(尤其是守护进程 perl 脚本)。
现在我正在查看 Proc Daemon,但我又不知道从哪里开始,或者是否应该使用或不使用模块来完成。
我相信,如果我给出一个我正在寻找的例子,可以给这个问题更多的方向。
例子
假设我在 osx 并且我想编写一个可以 运行 作为守护程序的 perl 脚本。它响应信号 HUP,然后继续打印来自某个 directory.If 的文件的内容,它收到信号 USR1,它以不同的方式打印出内容。作为守护进程执行此操作的最合适方法是什么?
这就是您所需要的:
#!/usr/bin/perl
use strict;
use warnings;
use Daemon::Daemonize qw( daemonize write_pidfile );
sub sighup_handler {
...
}
sub sigusr1_handler {
...
}
{
my $name = "...";
my $error_log_qfn = "/var/log/$name.log";
my $pid_file_qfn = "/var/run/$name.pid";
daemonize(
close => 'std',
stderr => $error_log_qfn,
);
$SIG{HUP} = \&sighup_handler;
$SIG{USR1} = \&sigusr1_handler;
write_pidfile($pid_file_qfn);
sleep while 1;
}
目前我正在寻找一个 perl 脚本的守护进程。可悲的是,大多数答案都已过时,我实际上完全不明白如何开始守护进程(尤其是守护进程 perl 脚本)。
现在我正在查看 Proc Daemon,但我又不知道从哪里开始,或者是否应该使用或不使用模块来完成。
我相信,如果我给出一个我正在寻找的例子,可以给这个问题更多的方向。
例子
假设我在 osx 并且我想编写一个可以 运行 作为守护程序的 perl 脚本。它响应信号 HUP,然后继续打印来自某个 directory.If 的文件的内容,它收到信号 USR1,它以不同的方式打印出内容。作为守护进程执行此操作的最合适方法是什么?
这就是您所需要的:
#!/usr/bin/perl
use strict;
use warnings;
use Daemon::Daemonize qw( daemonize write_pidfile );
sub sighup_handler {
...
}
sub sigusr1_handler {
...
}
{
my $name = "...";
my $error_log_qfn = "/var/log/$name.log";
my $pid_file_qfn = "/var/run/$name.pid";
daemonize(
close => 'std',
stderr => $error_log_qfn,
);
$SIG{HUP} = \&sighup_handler;
$SIG{USR1} = \&sigusr1_handler;
write_pidfile($pid_file_qfn);
sleep while 1;
}