Startup script linux

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
m
m
Line 1: Line 1:
==/etc/init.d script for Linux==
+
== /etc/init.d script for Linux ==
===Instructions===
+
Tested on Debian 5.
+
CHUIDS user to opensim user.
+
Supports: start, stop, restart, status
+
  
To implement:
+
=== Instructions  ===
Type: cat > /etc/init.d/opensim
+
Paste in script from this page
+
Press: CTRL+D
+
Type: chmod +x /etc/init.d/opensim
+
Script should now be located on server and be executable.
+
  
Type: update-rc.d opensim defaults
+
Tested on Debian 5. CHUIDS user to opensim user. Supports: start, stop, restart, status
Script should now be in your startup.
+
  
Modify header in script to adapt it to your installation folder and user.
+
To implement: Type: cat > /etc/init.d/opensim Paste in script from this page Press: CTRL+D Type: chmod +x /etc/init.d/opensim Script should now be located on server and be executable.  
  
NOTE:
+
Type: update-rc.d opensim defaults Script should now be in your startup.  
stop-command currently doesn't work properly (it doesn't do a soft shutdown). It will kill OpenSim first with kill pid, then kill -9 pid. So make sure you have saved your data. :)
+
  
===Script===
+
Modify header in script to adapt it to your installation folder and user.
  
<code>
+
NOTE: stop-command currently doesn't work properly (it doesn't do a soft shutdown). It will kill OpenSim first with kill pid, then kill -9 pid. So make sure you have saved your data.&nbsp;:)
#! /bin/sh
+
### BEGIN INIT INFO
+
# Provides:         OpenSim
+
# Required-Start:   $local_fs $network
+
# Required-Stop:    $local_fs
+
# Default-Start:    2 3 4 5
+
# Default-Stop:      0 1 6
+
# Short-Description: Tedds OpenSim init.d-script
+
### END INIT INFO
+
  
  # Put script in /etc/init.d/
+
=== Script ===
# then execute: update-rc.d opensim defaults
+
<pre>#! /bin/sh
 +
### BEGIN INIT INFO
 +
# Provides: OpenSim
 +
# Required-Start: $local_fs $network
 +
# Required-Stop: $local_fs
 +
# Default-Start: 2 3 4 5
 +
# Default-Stop: 0 1 6
 +
# Short-Description: Tedds OpenSim init.d-script
 +
### END INIT INFO
 +
# Put script in /etc/init.d/
 +
# then execute: update-rc.d opensim defaults
  
set -e
+
set -e
  
#
+
#
# Directories
+
# Directories
#
+
#
# Location of OpenSim installation
+
# Location of OpenSim installation
DIR=/home/opensim/OpenSim/bin/
+
DIR=/home/opensim/OpenSim/bin/
# Different PID dir?
+
# Different PID dir?
PIDDIR=$DIR
+
PIDDIR=$DIR
  
USER=opensim
+
USER=opensim
SERVICES="OpenSim.Grid.UserServer.exe OpenSim.Server.exe OpenSim.exe"
+
SERVICES="OpenSim.Grid.UserServer.exe OpenSim.Server.exe OpenSim.exe"
  
#
+
#
# Kill values (in seconds)
+
# Kill values (in seconds)
#
+
#
# How long between each service being started
+
# How long between each service being started
DELAY_STARTUP=10
+
DELAY_STARTUP=10
# How long between each service is sent shutdown command
+
# How long between each service is sent shutdown command
DELAY_KILL=10
+
DELAY_KILL=10
# After shutdown has been sent to all we do another loop with "kill", then "kill -9". How long between "kill" and "kill -9".
+
# After shutdown has been sent to all we do another loop with "kill", then "kill -9". How long between "kill" and "kill -9".
DELAY_FORCEKILL=10
+
DELAY_FORCEKILL=10
  
#
+
#
# Info on service handled by this script
+
# Info on service handled by this script
#
+
#
# Name of service
+
# Name of service
NAME=opensim
+
NAME=opensim
# Description of service
+
# Description of service
DESC="OpenSim Server"
+
DESC="OpenSim Server"
  
# Binaries
+
# Binaries
SCREEN=/usr/bin/screen
+
SCREEN=/usr/bin/screen
MONO=/usr/bin/mono
+
MONO=/usr/bin/mono
  
###########################
+
###########################
##### START OF SCRIPT #####
+
##### START OF SCRIPT #####
###########################
+
###########################
  
export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
+
export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
  
 +
&lt;br&gt;
  
# Load LSB log functions
+
# Load LSB log functions
_lsbFile=""
+
_lsbFile=""
if [ -e /etc/debian_version ]; then
+
if [ -e /etc/debian_version ]; then
    _lsbFile="/lib/lsb/init-functions"
+
_lsbFile="/lib/lsb/init-functions"
    if [ -f $_lsbFile ]; then
+
if [ -f $_lsbFile ]; then
        . $_lsbFile
+
. $_lsbFile
    else
+
else
        echo This script requires LSB init-functions file which doesn't exist: $_lsbFile
+
echo This script requires LSB init-functions file which doesn't exist: $_lsbFile
        exit 1
+
exit 1
    fi
+
fi
else
+
else
# [ -e /etc/init.d/functions ] ; then
+
# [ -e /etc/init.d/functions ]&amp;nbsp;; then
    _lsbFile="/etc/init.d/functions"
+
_lsbFile="/etc/init.d/functions"
    if [ -e $_lsbFile ]; then
+
if [ -e $_lsbFile ]; then
        . $_lsbFile
+
. $_lsbFile
    else
+
else
        echo This script requires LSB init-functions file which doesn't exist: $_lsbFile
+
echo This script requires LSB init-functions file which doesn't exist: $_lsbFile
        exit 1
+
exit 1
    fi
+
fi
fi
+
fi
  
# Lets use fancy output
+
# Lets use fancy output
log_use_fancy_output
+
log_use_fancy_output
  
# Check that target directory exists
+
# Check that target directory exists
if test ! -d "$DIR"; then
+
if test&amp;nbsp;! -d "$DIR"; then
    log_failure_msg "$NAME" "Target directory \"$DIR\" does not exist. Can not continue."
+
log_failure_msg "$NAME" "Target directory \"$DIR\" does not exist. Can not continue."
    exit 1
+
exit 1
fi
+
fi
  
# Create a reverse order for shutdown
+
# Create a reverse order for shutdown
SERVICES_REVERSE=""
+
SERVICES_REVERSE=""
reverse() { SERVICES_REVERSE="$9 $8 $7 $6 $5 $4 $3 $2 $1"; }
+
reverse() { SERVICES_REVERSE="$9 $8 $7 $6 $5 $4 $3 $2 $1"; }
reverse $SERVICES
+
reverse $SERVICES
  
# Check if a service is running
+
# Check if a service is running
isrunning() {  
+
isrunning() {  
    ISRUNNING="0"
+
ISRUNNING="0"
    # Do we have PID-file?
+
# Do we have PID-file?
    if [ -f "$PIDDIR/$1.pid" ]; then
+
if [ -f "$PIDDIR/$1.pid" ]; then
        # Check if proc is running
+
# Check if proc is running
        pid=`cat "$PIDDIR/$1.pid" 2> /dev/null`
+
pid=`cat "$PIDDIR/$1.pid" 2&amp;gt; /dev/null`
        if [ "$pid" != "" ]; then
+
if [ "$pid"&amp;nbsp;!= "" ]; then
            if [ -d /proc/$pid ]; then
+
if [ -d /proc/$pid ]; then
                # Process is running
+
# Process is running
                ISRUNNING="1"
+
ISRUNNING="1"
            fi
+
fi
        fi
+
fi
    fi
+
fi
    #ISRUNNING="0"
+
#ISRUNNING="0"
}
+
}
  
#
+
#
# Process commands
+
# Process commands
#
+
#
case "$1" in
+
case "$1" in
start)
+
start)
    # Start all services one by one
+
# Start all services one by one
    for server in $SERVICES; do
+
for server in $SERVICES; do
        log_daemon_msg "Starting $NAME" "$server"
+
log_daemon_msg "Starting $NAME" "$server"
  
        isrunning $server
+
isrunning $server
        case "$ISRUNNING" in
+
case "$ISRUNNING" in
            1) log_progress_msg "Process already started. Please stop first"; log_end_msg 1 ;;
+
1) log_progress_msg "Process already started. Please stop first"; log_end_msg 1&amp;nbsp;;;
            0)  
+
0)  
                # Process is not running
+
# Process is not running
                # Start process and sleep...
+
# Start process and sleep...
                exefile="/tmp/exe.OpenSim.$server.sh"
+
exefile="/tmp/exe.OpenSim.$server.sh"
  
                # Need to make external file, had big problems with screen params
+
# Need to make external file, had big problems with screen params
                echo \#\!/bin/bash > $exefile
+
echo \#\!/bin/bash &amp;gt; $exefile
                echo cd $DIR >> $exefile
+
echo cd $DIR &amp;gt;&amp;gt; $exefile
                echo $MONO $server >> $exefile
+
echo $MONO $server &amp;gt;&amp;gt; $exefile
                chmod +x $exefile
+
chmod +x $exefile
  
                cmd_screen="screen -S $server -d -m $exefile"
+
cmd_screen="screen -S $server -d -m $exefile"
                start-stop-daemon --start -b -x /bin/su -m --pidfile=/tmp/su.$server.pid --chdir "$DIR" -- - $USER "-c $cmd_screen"
+
start-stop-daemon --start -b -x /bin/su -m --pidfile=/tmp/su.$server.pid --chdir "$DIR" -- - $USER "-c $cmd_screen"
  
                # Delay between services that are started
+
# Delay between services that are started
                sleep $DELAY_STARTUP
+
sleep $DELAY_STARTUP
  
                rm $exefile 2> /dev/null
+
rm $exefile 2&amp;gt; /dev/null
  
                # Make PID-file
+
# Make PID-file
                ps afxu | grep "mono $server" | grep -iEv "grep|screen" | awk {'print $2'} > "$PIDDIR/$server.pid"
+
ps afxu | grep "mono $server" | grep -iEv "grep|screen" | awk {'print $2'} &amp;gt; "$PIDDIR/$server.pid"
  
                isrunning $server
+
isrunning $server
                case "$ISRUNNING" in
+
case "$ISRUNNING" in
                    1)  
+
1)  
                        # Process started ok
+
# Process started ok
                        #log_progress_msg "Success";  
+
#log_progress_msg "Success";  
                        log_end_msg 0  
+
log_end_msg 0  
                        ;;
+
&amp;nbsp;;;
                    0)  
+
0)  
                        # Process didn't start... remove pid-file
+
# Process didn't start... remove pid-file
                        rm "$PIDDIR/$server.pid" 2> /dev/null
+
rm "$PIDDIR/$server.pid" 2&amp;gt; /dev/null
                        #log_progress_msg "Failure";  
+
#log_progress_msg "Failure";  
                        log_end_msg 1  
+
log_end_msg 1  
                        ;;
+
&amp;nbsp;;;
                esac
+
esac
                ;;
+
&amp;nbsp;;;
        esac
+
esac
  
    done
+
done
    ;;
+
&amp;nbsp;;;
  
 +
&lt;br&gt;
  
stop)
+
stop)
    _killCount=0
+
_killCount=0
  
    for server in $SERVICES_REVERSE; do
+
for server in $SERVICES_REVERSE; do
        log_daemon_msg "Stopping $NAME" "$server"
+
log_daemon_msg "Stopping $NAME" "$server"
  
        isrunning $server
+
isrunning $server
        case "$ISRUNNING" in
+
case "$ISRUNNING" in
        1)  
+
1)  
            _killCount=`expr $_killCount + 1`
+
_killCount=`expr $_killCount + 1`
            log_progress_msg "Sending shutdown command:";  
+
log_progress_msg "Sending shutdown command:";  
  
            # We add some backspaces to the command in case something is on the console already
+
# We add some backspaces to the command in case something is on the console already
            echo `screen -S $server -X stuff \"                            
+
echo `screen -S $server -X stuff \"  
  
            # Wait for it to shut down...
+
# Wait for it to shut down...
            sleep $DELAY_KILL
+
sleep $DELAY_KILL
  
            isrunning $server
+
isrunning $server
            case "$ISRUNNING" in
+
case "$ISRUNNING" in
                1) log_progress_msg "is still running."; log_end_msg 0 ;;
+
1) log_progress_msg "is still running."; log_end_msg 0&amp;nbsp;;;
                0) log_progress_msg "has been shutdown"; log_end_msg 0 ;;
+
0) log_progress_msg "has been shutdown"; log_end_msg 0&amp;nbsp;;;
            esac
+
esac
  
            ;;
+
&amp;nbsp;;;
        0)  
+
0)  
            log_progress_msg "is not running"; log_end_msg 0
+
log_progress_msg "is not running"; log_end_msg 0
            ;;
+
&amp;nbsp;;;
        esac
+
esac
  
    done
+
done
  
    # Check if any procs are still running
+
# Check if any procs are still running
    for server in $SERVICES; do
+
for server in $SERVICES; do
        isrunning $server
+
isrunning $server
        case "$ISRUNNING" in
+
case "$ISRUNNING" in
        1)  
+
1)  
            log_warning_msg "Stopping $NAME" "$server is still running: Forcing kill"
+
log_warning_msg "Stopping $NAME" "$server is still running: Forcing kill"
            echo `kill $pid 2> /dev/null`;
+
echo `kill $pid 2&amp;gt; /dev/null`;
            sleep $DELAY_FORCEKILL
+
sleep $DELAY_FORCEKILL
            echo `kill -9 $pid 2> /dev/null`;
+
echo `kill -9 $pid 2&amp;gt; /dev/null`;
            sleep 1
+
sleep 1
  
            # Now check again if it is still running...
+
# Now check again if it is still running...
            isrunning $server
+
isrunning $server
            case "$ISRUNNING" in
+
case "$ISRUNNING" in
                0) log_progress_msg "Success"; log_end_msg 0 ;;
+
0) log_progress_msg "Success"; log_end_msg 0&amp;nbsp;;;
                1) log_progress_msg "Process is still running... Even after \"kill -9 $pid\". WOW..."; log_end_msg 0 ;;
+
1) log_progress_msg "Process is still running... Even after \"kill -9 $pid\". WOW..."; log_end_msg 0&amp;nbsp;;;
            esac
+
esac
            ;;
+
&amp;nbsp;;;
        0)  
+
0)  
            #log_progress_msg "";  
+
#log_progress_msg "";  
            ;;
+
&amp;nbsp;;;
        esac
+
esac
    done
+
done
  
    log_begin_msg "$NAME: All done (killed $_killCount procs)"; log_end_msg 0
+
log_begin_msg "$NAME: All done (killed $_killCount procs)"; log_end_msg 0
  
    ;;
+
&amp;nbsp;;;
  
 +
&lt;br&gt;
  
 +
&lt;br&gt;
  
 +
status)
 +
# Count how many processes we need
 +
PROCCOUNT=0
 +
for i in $SERVICES; do
 +
PROCCOUNT=`expr $PROCCOUNT + 1`
 +
done
  
status)
+
# Go through server PID files and count how many are running
    # Count how many processes we need
+
log_begin_msg "$NAME: Running processed:"
    PROCCOUNT=0
+
_pidCount=0
    for i in $SERVICES; do
+
for server in $SERVICES; do
        PROCCOUNT=`expr $PROCCOUNT + 1`
+
    done
+
  
    # Go through server PID files and count how many are running
+
isrunning $server
    log_begin_msg "$NAME: Running processed:"
+
case "$ISRUNNING" in
    _pidCount=0
+
1)
    for server in $SERVICES; do
+
# This server is running
 +
_pidCount=`expr $_pidCount + 1`
 +
log_progress_msg "$server"
 +
&amp;nbsp;;;
 +
0)
 +
&amp;nbsp;;;
 +
esac
 +
done
  
        isrunning $server
+
log_begin_msg " ($_pidCount of $PROCCOUNT processes are running)"; log_end_msg 0
        case "$ISRUNNING" in
+
            1)
+
                # This server is running
+
                _pidCount=`expr $_pidCount + 1`
+
                log_progress_msg "$server"
+
                ;;
+
            0)
+
                ;;
+
        esac
+
    done
+
  
    log_begin_msg " ($_pidCount of $PROCCOUNT processes are running)"; log_end_msg 0
+
# Check if running proc count matches requires proc count
 
+
log_begin_msg "$NAME is"
    # Check if running proc count matches requires proc count
+
if [ $_pidCount -eq $PROCCOUNT ]; then
    log_begin_msg "$NAME is"
+
log_progress_msg "running"; log_end_msg 0
    if [ $_pidCount -eq $PROCCOUNT ]; then
+
exit 0
        log_progress_msg "running"; log_end_msg 0
+
else
        exit 0
+
log_progress_msg "NOT running"; log_end_msg 0
    else
+
exit 1
        log_progress_msg "NOT running"; log_end_msg 0
+
fi
        exit 1
+
&amp;nbsp;;;
    fi
+
    ;;
+
  
restart)
+
restart)
    $0 stop
+
$0 stop
    $0 start
+
$0 start
    ;;
+
&amp;nbsp;;;
*)
+
*)
    echo "Usage: /etc/init.d/$NAME {start|stop|restart|status}" >&2
+
echo "Usage: /etc/init.d/$NAME {start|stop|restart|status}" &amp;gt;&amp;amp;2
    exit 1
+
exit 1
    ;;
+
&amp;nbsp;;;
esac
+
esac
  
exit 0
+
exit 0
</code>
+
</pre>

Revision as of 03:50, 5 March 2010

/etc/init.d script for Linux

Instructions

Tested on Debian 5. CHUIDS user to opensim user. Supports: start, stop, restart, status

To implement: Type: cat > /etc/init.d/opensim Paste in script from this page Press: CTRL+D Type: chmod +x /etc/init.d/opensim Script should now be located on server and be executable.

Type: update-rc.d opensim defaults Script should now be in your startup.

Modify header in script to adapt it to your installation folder and user.

NOTE: stop-command currently doesn't work properly (it doesn't do a soft shutdown). It will kill OpenSim first with kill pid, then kill -9 pid. So make sure you have saved your data. :)

Script

#! /bin/sh
### BEGIN INIT INFO
# Provides: OpenSim
# Required-Start: $local_fs $network 
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Tedds OpenSim init.d-script
### END INIT INFO
# Put script in /etc/init.d/
# then execute: update-rc.d opensim defaults

set -e

#
# Directories
#
# Location of OpenSim installation
DIR=/home/opensim/OpenSim/bin/
# Different PID dir?
PIDDIR=$DIR

USER=opensim
SERVICES="OpenSim.Grid.UserServer.exe OpenSim.Server.exe OpenSim.exe"

#
# Kill values (in seconds)
#
# How long between each service being started
DELAY_STARTUP=10
# How long between each service is sent shutdown command
DELAY_KILL=10
# After shutdown has been sent to all we do another loop with "kill", then "kill -9". How long between "kill" and "kill -9".
DELAY_FORCEKILL=10

#
# Info on service handled by this script
#
# Name of service
NAME=opensim
# Description of service
DESC="OpenSim Server"

# Binaries
SCREEN=/usr/bin/screen
MONO=/usr/bin/mono

###########################
##### START OF SCRIPT #####
###########################

export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"

<br>

# Load LSB log functions
_lsbFile=""
if [ -e /etc/debian_version ]; then
_lsbFile="/lib/lsb/init-functions"
if [ -f $_lsbFile ]; then
. $_lsbFile
else
echo This script requires LSB init-functions file which doesn't exist: $_lsbFile
exit 1
fi
else
# [ -e /etc/init.d/functions ]&nbsp;; then
_lsbFile="/etc/init.d/functions"
if [ -e $_lsbFile ]; then
. $_lsbFile
else
echo This script requires LSB init-functions file which doesn't exist: $_lsbFile
exit 1
fi
fi

# Lets use fancy output
log_use_fancy_output

# Check that target directory exists
if test&nbsp;! -d "$DIR"; then
log_failure_msg "$NAME" "Target directory \"$DIR\" does not exist. Can not continue."
exit 1
fi

# Create a reverse order for shutdown
SERVICES_REVERSE=""
reverse() { SERVICES_REVERSE="$9 $8 $7 $6 $5 $4 $3 $2 $1"; }
reverse $SERVICES

# Check if a service is running
isrunning() { 
ISRUNNING="0"
# Do we have PID-file?
if [ -f "$PIDDIR/$1.pid" ]; then
# Check if proc is running
pid=`cat "$PIDDIR/$1.pid" 2&gt; /dev/null`
if [ "$pid"&nbsp;!= "" ]; then
if [ -d /proc/$pid ]; then
# Process is running
ISRUNNING="1"
fi
fi
fi
#ISRUNNING="0"
}

#
# Process commands
#
case "$1" in
start)
# Start all services one by one
for server in $SERVICES; do
log_daemon_msg "Starting $NAME" "$server"

isrunning $server
case "$ISRUNNING" in
1) log_progress_msg "Process already started. Please stop first"; log_end_msg 1&nbsp;;;
0) 
# Process is not running
# Start process and sleep...
exefile="/tmp/exe.OpenSim.$server.sh"

# Need to make external file, had big problems with screen params
echo \#\!/bin/bash &gt; $exefile
echo cd $DIR &gt;&gt; $exefile
echo $MONO $server &gt;&gt; $exefile
chmod +x $exefile

cmd_screen="screen -S $server -d -m $exefile"
start-stop-daemon --start -b -x /bin/su -m --pidfile=/tmp/su.$server.pid --chdir "$DIR" -- - $USER "-c $cmd_screen"

# Delay between services that are started
sleep $DELAY_STARTUP

rm $exefile 2&gt; /dev/null

# Make PID-file
ps afxu | grep "mono $server" | grep -iEv "grep|screen" | awk {'print $2'} &gt; "$PIDDIR/$server.pid"

isrunning $server
case "$ISRUNNING" in
1) 
# Process started ok
#log_progress_msg "Success"; 
log_end_msg 0 
&nbsp;;;
0) 
# Process didn't start... remove pid-file
rm "$PIDDIR/$server.pid" 2&gt; /dev/null
#log_progress_msg "Failure"; 
log_end_msg 1 
&nbsp;;;
esac
&nbsp;;;
esac

done
&nbsp;;;

<br>

stop)
_killCount=0

for server in $SERVICES_REVERSE; do
log_daemon_msg "Stopping $NAME" "$server"

isrunning $server
case "$ISRUNNING" in
1) 
_killCount=`expr $_killCount + 1`
log_progress_msg "Sending shutdown command:"; 

# We add some backspaces to the command in case something is on the console already
echo `screen -S $server -X stuff \" 

# Wait for it to shut down...
sleep $DELAY_KILL

isrunning $server
case "$ISRUNNING" in
1) log_progress_msg "is still running."; log_end_msg 0&nbsp;;;
0) log_progress_msg "has been shutdown"; log_end_msg 0&nbsp;;;
esac

&nbsp;;;
0) 
log_progress_msg "is not running"; log_end_msg 0
&nbsp;;;
esac

done

# Check if any procs are still running
for server in $SERVICES; do
isrunning $server
case "$ISRUNNING" in
1) 
log_warning_msg "Stopping $NAME" "$server is still running: Forcing kill"
echo `kill $pid 2&gt; /dev/null`;
sleep $DELAY_FORCEKILL
echo `kill -9 $pid 2&gt; /dev/null`;
sleep 1

# Now check again if it is still running...
isrunning $server
case "$ISRUNNING" in
0) log_progress_msg "Success"; log_end_msg 0&nbsp;;;
1) log_progress_msg "Process is still running... Even after \"kill -9 $pid\". WOW..."; log_end_msg 0&nbsp;;;
esac
&nbsp;;;
0) 
#log_progress_msg ""; 
&nbsp;;;
esac
done

log_begin_msg "$NAME: All done (killed $_killCount procs)"; log_end_msg 0

&nbsp;;;

<br>

<br>

status)
# Count how many processes we need
PROCCOUNT=0
for i in $SERVICES; do
PROCCOUNT=`expr $PROCCOUNT + 1`
done

# Go through server PID files and count how many are running
log_begin_msg "$NAME: Running processed:"
_pidCount=0
for server in $SERVICES; do

isrunning $server
case "$ISRUNNING" in
1) 
# This server is running
_pidCount=`expr $_pidCount + 1`
log_progress_msg "$server"
&nbsp;;;
0) 
&nbsp;;;
esac
done

log_begin_msg " ($_pidCount of $PROCCOUNT processes are running)"; log_end_msg 0

# Check if running proc count matches requires proc count
log_begin_msg "$NAME is"
if [ $_pidCount -eq $PROCCOUNT ]; then
log_progress_msg "running"; log_end_msg 0
exit 0
else
log_progress_msg "NOT running"; log_end_msg 0
exit 1
fi
&nbsp;;;

restart)
$0 stop
$0 start
&nbsp;;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|restart|status}" &gt;&amp;2
exit 1
&nbsp;;;
esac

exit 0
Personal tools
General
About This Wiki