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 need to add the command to the startup process by typing:

chkconfig --add popfile

and then

chkconfig popfile on

This will enable popfile to start on boot based on the chkconfig setting in the script below.

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 <johnzoe[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/redhat_mandrake.txt · 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