# Как сделать так, чтобы скрипт работал в фоновом режиме, как демон?
# Варианта два. Первый - воспользоваться модулем Proc::Daemon, второй -
# сделать все самому, примерно так:
use strict;
require 'sys/syscall.ph';
# Устанавливаем путь по умолчанию
$ENV{PATH} = '/bin:/usr/bin';
# Чисто для прикола
$0='mydaemon';
# Отделяемся от родителя
fork() && exit;
# Отключаемся от терминала
close STDOUT; close STDERR; close STDIN;
# Делаем корень текужим каталогом
chdir '/';
# Создаем новую сессию и становимся лидером
# группы процессов, чтоб нас случайно не прибили
syscall(&SYS_setsid);
# Перехватываем сигналы, для корректного выхода
$SIG{'INT'} = $SIG{'QUIT'} = $SIG{'TERM'} = 'quit';
$SIG{'HUP'} = 'ignore';
# Делаем наши темные дела
...
# Выходим
quit();
sub quit {
# Помещаем сюда код для корректного
# прекращения работы
...
exit(0);
}
# Если Вы хотите написать демона, реализующего работу через сеть,
# рекомендуем ознакомиться с модулем Net::Daemon.
Xpoint.ru - Программирование::Perl::Разное - F.A.Q.