|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Sindarovskij Roman 2:5020/400 16 Aug 2004 17:27:05 To : All Subject : daemon on perl -------------------------------------------------------------------------------- Hi All! Пишу демон на перле. #!/usr/bin/perl use strict; use IO::File; use POSIX 'setsid'; use constant PID_FILE => '/tmp/daemon.pid'; use constant LOG_FILE => '/tmp/daemon.log'; $SIG{TERM} = $SIG{INT} = sub { exit 0; }; my $fh = open_pid_file(PID_FILE); my $pid = daemon(); print "$pid\n"; print $fh $pid; close($fh); while (1) { print "1"; sleep 5; }; sub open_pid_file { my $file = $_[0]; return IO::File->new($file, O_WRONLY|O_CREAT|O_EXCL, 0644) or die "Can not create $file: $!\n"; }; sub daemon { setsid(); open(STDIN, "</dev/null"); open(STDOUT, ">".LOG_FILE); open(STERR, ">&STDOUT"); STDOUT->autoflush(1); chdir('/'); umask(0); $ENV{PATH} = '/bin:/sbin:/usr/bin:/usr/sbin'; return $$; }; END { unlink PID_FILE; }; Hо, или я плохо читал доку, или чего-то не понимаю. Дескрипторы переопределяются, вывод уходит в лог, пид-файл создается/уничтожается, но скрипт в фоновый режим не уходит. Можно запустить daemon.pl & и все получится, но хотелось бы без этого. Что я забыл сделать? --- ifmail v.2.15dev5.3 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/13276b444ade4.html, оценка из 5, голосов 10
|