我有一些测试代码:
#!/usr/bin/perl
use strict;
use warnings;
use Proc::Daemon;
my $daemon = Proc::Daemon->new;
Proc::Daemon::Init();
my $kid_pid = $daemon->Init(
{ work_dir => '/home/develop',
pid_file => 'pid.txt',
exec_command => 'perl /home/develop/test.pl ',
}
);
$| = 1;
while (1) {
my $status = $daemon->Status( [$kid_pid] );
if ( !$status ) {
my $kid_pid = $daemon->Init(
{ work_dir => '/home/develop',
pid_file => 'pid.txt',
exec_command => 'perl /home/develop/test.pl ',
}
);
}
sleep(5);
}
我需要脚本test.pl来了解他的PID。给他一个PID作为一个参数是理想的,但在Init方法的论据中给他$ kid_pid的课程是不可能的。从文件中读取的选项不合适。
现在我需要知道父脚本的PID。代码my $ppid = Proc::Daemon::Init();
对我不起作用,因为我有脚本循环而且他工作不正常。 $$
也不起作用,因为Proc::Daemon::Init()
有另一个PID。