You don't need to make a daemon for the most part you can use nohup (see man 1 nohup). nohup protects your process from getting the signal HUP when you disconnect your terminal (eg close your ssh client). This will allow your perl script should keep running. My Debian box's nohup appends output of the script to nohup.out. So if your script spews information out, watch the size of nohup.out files.
If you still want to create a daemon here is some code I stumbled on and saved for a rainy day. I honestly can't remember the source site on the web. (If you know it and I should put it here let me know!)
--blm--use POSIX qw(setsid); chdir '/' or die "Can't chdir to /: $!"; umask 0; open STDIN, '/dev/null' or die "Can't read /dev/null: $!"; #open STDOUT, '>/dev/null' or die "Can't write to /dev/null: $!"; open STDERR, '>/dev/null' or die "Can't write to /dev/null: $!"; defined(my $pid = fork) or die "Can't fork: $!"; exit if $pid; #parent dies #Here is the daemon part setsid or die "Can't start a new session: $!"; while(1) { sleep(5); print "Hello...\n"; }
Please note: You use my code at your risk. There are no garantees implied or otherwise.
In reply to Re: how to make a demon in perl?
by blm
in thread how to make a demon in perl?
by Sihal
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |