Trying to use relaydelay.pl from projects.puremagic.com (greylisting milter for sendmail) End result is a perl file... and I want to invoke it as a daemon - detached from any terminal. it appears that most of the sysv scripts use /etc/rc.d/init.d/functions to get a more sophisticated box of tools... my problem is that my sysv script (called relay) hangs at the point where it wants to initlog -q -c /usr/local/sbin/relaydelay.pl and this obviously comes from the code in /etc/rc.d/init.d/functions. If I kill the neverending process...everything is fine and the program is launched BUT - it never detaches from the terminal. i.e. #service relay start then from another terminal (cuz this one never let's go) #ps aux|grep relay root 26576 0.0 0.1 2120 932 pts/4 S 00:28 0:00 /bin/sh /sbin/service relay start root 26579 0.0 0.2 4456 1208 pts/4 S 00:28 0:00 /bin/sh /etc/init.d/relay start root 26582 0.0 0.1 3784 676 pts/4 S 00:28 0:00 initlog - q -c /usr/local/sbin/relaydelay.pl root 26583 0.2 1.2 31004 6408 pts/4 S 00:28 0:00 /usr/bin/perl -w /usr/local/sbin/relaydelay.pl root 26602 0.0 0.0 1620 472 pts/3 S 00:30 0:00 grep relay note that process is still listed in pts/4 (and I have switched to pts/3 cause pts/4 is otherwise occupied) # kill 26582 # ps aux|grep relay root 26583 0.1 1.2 31004 6412 pts/4 S 00:28 0:00 /usr/bin/perl -w /usr/local/sbin/relaydelay.pl root 26613 0.0 0.0 1612 472 pts/3 S 00:32 0:00 grep relay I just want it to detach from the terminal (which is apparently the entire point of /etc/rc.d/init.d/functions Can someone direct me on this as I don't get it. The entire contents of /etc/rc.d/init.d/relay #!/bin/sh # # chkconfig: - 98 28 # description: Starts and stops the Relay-Delay # # # pidfile: /var/run/relaydelay.pid # config: /etc/mail/relaydelay.conf # Source function library. . /etc/rc.d/init.d/functions source /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0 [ -x /root/relaydelay-0.04/relaydelay.pl ] || exit 1 RETVAL=0 prog="/usr/local/sbin/relaydelay.pl" desc="Greylisting" start() { echo -n $"Starting $desc ($prog): " daemon $prog RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/relaydelay return $RETVAL } stop() { echo -n $"Shutting down $desc ($prog): " killproc $prog RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/relaydelay return $RETVAL } restart() { stop start } reload() { echo -n $"Reloading relaydelay.conf file: " pkill relaydelay -HUP RETVAL=$? echo return $RETVAL } rhstatus() { status relaydelay } case "$1" in start) start ;; stop) stop ;; restart) restart ;; reload) reload ;; status) rhstatus ;; *) echo $"Usage: $0 {start|stop|restart|reload|status}" exit 1 esac exit $RETVAL thanks - Craig