Я написал простой тестовый демон, используя Proc :: Daemon . Вот этот демон:
#!/usr/bin/perl
use Proc::Daemon;
$daemon = Proc::Daemon->new(
work_dir => '/scripts/',
child_STDOUT => '/scripts/child.log',
child_STDERR => '+>>debugchild.txt',
pid_file => 'pid.txt',
exec_command => 'perl /scripts/test.pl'
);
foreach(@ARGV)
{
if ( /install/i )
{
$Kid_1_PID = $daemon->Init;
}
elsif (/remove/i)
{
$stopped = $daemon->Kill_Daemon();
}
}
А вот тест, который он выполняет:
#!/usr/local/bin/perl
while (1) {
print "test\n";
sleep(1);
}
Цикл while работает нормально только с оператором print, но когда я добавляю sleep (); журнал пуст. С чего бы это?