#!/usr/bin/perl # daemon.pl use POSIX qw(setsid); use IO::All; use strict; use warnings; daemonize(); my $date_time; while (1) { $date_time = scalar localtime; qq($date_time\n) > io('/tmp/daemon.log'); sleep 5; } sub daemonize { defined (my $child = fork) or die qq(I really can't do that...!\n); exit if ( $child ); setsid(); open( STDIN, "/dev/null" ); # inferior mistake! open( STDOUT, ">/dev/null" ); open( STDIN, ">&STDOUT" ); chdir '/'; umask(0); # ENV{PATH} = qq(what/you/really/need); } __END__ #### tail -f /tmp/daemon.log #### # ps aux | grep '[/]usr/bin/perl ./daemon.pl' | perl -ane 'print $F[1]'; # if many... ps aux | grep '[/]usr/bin/perl ./daemon.pl' | perl -ane 'print $F[1] . qq(\n)' #### # kill -TERM $(ps aux | grep '[/]usr/bin/perl ./daemon.pl' | perl -ane 'print $F[1]';) # if many... kill -TERM $(ps aux | grep '[/]usr/bin/perl ./daemon.pl' | perl -ane 'print $F[1] . qq(\n)')