This is an old revision of the document!
All of the information below assumes you are logged in as root.
Here is a script for RedHat- it needs to reside in /etc/init.d/
It is based on a script by John Zoetebier for SuSE (The HOWTO forum has the original script for SuSE).
You might need to adjust the value of the popfile_home variable if you didn't install popfile to /usr/popfile (e.g. popfile_home=/usr/local/popfile).
you will also need to make a symbolic link (see below) in /etc/rc0.d and /etc/rc3.d
you make the link as follows:
ln -s /etc/init.d/popfile S??popfile
and
ln -s /etc/init.d/popfile K??popfile
These scripts are called by the system when it is shutting down the process or starting it at boot time.
You only need to put a K??popfile entry in rc0.d, as this is the runlevel used when Linux shuts down.
You will also need to make the 'popfile' script executable by typing:
chmod uga+x popfile
which makes it executable by everyone (all, group, user). If you only want root to run the script, then use:
chmod u+x popfile
#--- SCRIPT START file called: popfile #!/bin/sh # # Copyright (C) 2003 John Zoetebier <[email protected]> # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # ============== # History # -------------- # Modified by Peter Davie to include RedHat specific featues (e.g. using the 'functions' scripts) # 19 Nov 2003 10:49am MYT # # # popfile # # A shell-script wrapper for popfile designed for use in the SysV-init # system (/etc/init.d). # # # usage: popfile { start | stop | restart | } # # See also: LSB, start_daemon (lsb), startproc (suse), install_initd (lsb), # insserv (suse), /usr/share/doc/initscripts*/sysvinitfiles (redhat) # ## # RedHat comment block... # # chkconfig: 345 80 20 # description: popfile is a POP3 proxy and mail filter # pidfile: /var/run/popfile.pid # processname: popfile # # ## # LSB comment block... # # The bogus 345 run-levels are a workround for a buggy RedHat chkconfig which # reads the LSB comment block (incorrectly) as an undocumented 'feature'. # ### BEGIN INIT INFO # Provides: popfile # Required-Start: $network # Required-Stop: $network # Default-Start: 345 3 4 5 # Default-Stop: 345 3 4 5 # Description: popfile is a POP3 proxy and mail filter ### END INIT INFO ## # Source function library. if [ -f /etc/init.d/functions ] ; then /etc/init.d/functions elif [ -f /etc/rc.d/init.d/functions ] ; then /etc/rc.d/init.d/functions else exit 0 fi popfile_home=/usr/popfile popfile="${popfile_home}/popfile.pl" # file must be executable, otherwise perl will not start # Setup variables folder_saved=`pwd` start() { cd ${popfile_home} echo -n "Starting popfile: " ${popfile} >> /dev/null 2>&1 & echo -n "started as background process" && echo success && echo # echo -en "\033[${RES_COL}G[ OK ]" -- Commented out PD, see history above. } stop() { echo -n "Stopping popfile ... " pid=`ps -ef | grep perl | grep popfile.pl | gawk '{print $2}'` if [ "${pid}" = "" ] ; then echo "popfile is not running" else kill $pid fi #echo -en "\033[${RES_COL}G[ OK ]" echo success && echo } status() { pid=`ps -ef | grep perl | grep popfile.pl | gawk '{print $2}'` if [ "${pid}" = "" ] ; then echo "stopped" else echo "running" fi } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) status ;; *) echo $"Usage: $0 {start|stop|restart|status}" exit 1 ;; esac # Back to original folder cd $folder_saved exit 0 #--- SCRIPT END
Should you find anything in the documentation that is incomplete, unclear, outdated or just plain wrong, please let us know and leave a note in the Documentation Forum.