in reply to Daemons???

Here is the basis for a general daemon. Add code at the end to do what you want. This follows the Stevens rules.

#!/usr/bin/perl -w use strict; use POSIX qw( setsid ); my $debug = 1; my $logfile = q(.testlog); # Season to taste my @fh_unused = (\*STDIN, \*STDOUT); open \*STDERR, ">> $ENV{'HOME'}/$logfile"; select((select(\*STDERR), $| = 1)[0]); { # Daemon Rule 1) Fork and exit the parent. my $ppid = $$; my $pid = fork and exit 0; ! defined $pid and die "No Fork: ", $!; while (kill 0, $ppid) { select undef, undef, undef, .001; }; } # Daemon Rule 2) become session leader, pg leader, no term my $session_id = POSIX::setsid(); # Daemon Rule 3) cd to / chdir '/' or die "Could not cd to rootfs", $!; # Daemon Rule 4) set file creation mask to 0 my $oldmask = umask 00; # Daemon Rule 5) Close unneeded file handles close $_ or die $! for @fh_unused; # Your code here exit 0;
If you open communication channels before the fork, the child will inherit their handles.

After Compline,
Zaxo