Если есть шелл, то вполне хватит screen или nohup для запуска программы. Но если хочется, то вот грубый пример cgi скрипта, который демонизируется и с интервалом $delay запускает $cmd, вывод от которой пишет в $logfile #!/usr/bin/perl -w use strict; use POSIX 'setsid'; my $cmd='/bin/ls -l /tmp'; my $logfile='/tmp/daemon_cron.log'; my $delay=10; open LOG, '>',$logfile or die "Can't open $logfile for writing: $!"; chdir '/' or die "Can't chdir to /: $!"; open STDIN, '/dev/null' or die "Can't read /dev/null: $!"; defined(my $pid = fork) or die "Can't fork: $!"; if ($pid) { print "Content-type: text/html\n\n"; print "cron daemon is launched with pid $pid"; exit; } setsid or die "Can't start a new session: $!"; open STDOUT, '>/dev/null' or die "Can't write to /dev/null: $!"; open STDERR, '>&STDOUT' or die "Can't dup stdout: $!"; while (1) { sleep $delay; my $res=`$cmd`; print LOG time, ": executed '$cmd'. Output:\n$res\n"; }
|