This is an old revision of the document!


Startup / Shutdown Script for RedHat and Mandrake

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
  • where ?? is a number, e.g. 81, or a high number, but it must not be in use by any of the other scripts (do a ls of the directory and choose a non-used number).
  • The S = START
  • and the K = KILL

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
 
howtos/linux.1169650389.txt.gz · Last modified: 2008/02/08 19:49 (external edit)

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.

Recent changes RSS feed Donate Driven by DokuWiki
The content of this wiki is protected by the GNU Fee Documentation License