Difference between revisions of "OS4X Core init script"
Jump to navigation
Jump to search
(New page: For runlevel scripts, this script can be used as a basis for further needs. It works good in an OS4XBox environment. <pre> #! /bin/sh ### BEGIN INIT INFO # Provides: OS4X # Requir...) |
|||
| Line 22: | Line 22: | ||
# retrieve backup directory | # retrieve backup directory | ||
| − | OS4X_BINDIR=`echo "SELECT value FROM ${TABLEPREFIX}configuration WHERE name='bin_directory'" | | + | OS4X_BINDIR=`echo "SELECT value FROM ${TABLEPREFIX}configuration WHERE name='bin_directory'" | $MYSQLCLIENT --silent --user=$DB_USER --password=$DB_PASS --host=$DB_HOST $DB_NAME` |
| + | OS4X_ENTERPRISE=`echo "SELECT value FROM ${TABLEPREFIX}configuration WHERE name='os4x_enterprise'" | $MYSQLCLIENT --silent --user=$DB_USER --password=$DB_PASS --host=$DB_HOST $DB_NAME` | ||
# Check for missing binaries (stale symlinks should not happen) | # Check for missing binaries (stale symlinks should not happen) | ||
| Line 41: | Line 42: | ||
else exit 5; fi; } | else exit 5; fi; } | ||
| − | OS4XCLIENTD_BIN=$OS4X_BINDIR/os4xclientd | + | if [ $OS4X_ENTERPRISE -gt 0 ] |
| − | test -x $OS4XCLIENTD_BIN || { echo "$OS4XCLIENTD_BIN not installed"; | + | then |
| − | + | OS4XCLIENTD_BIN=$OS4X_BINDIR/os4xclientd | |
| − | + | test -x $OS4XCLIENTD_BIN || { echo "$OS4XCLIENTD_BIN not installed"; | |
| + | if [ "$1" = "stop" ]; then exit 0; | ||
| + | else exit 5; fi; } | ||
| + | fi | ||
case "$1" in | case "$1" in | ||
| Line 55: | Line 59: | ||
echo -n "os4xdebugd... " | echo -n "os4xdebugd... " | ||
$OS4XDEBUGD_BIN | $OS4XDEBUGD_BIN | ||
| − | echo -n "os4xclientd... " | + | if [ $OS4X_ENTERPRISE -gt 0 ] |
| − | + | then | |
| + | echo -n "os4xclientd... " | ||
| + | $OS4XCLIENTD_BIN | ||
| + | fi | ||
echo "OK" | echo "OK" | ||
;; | ;; | ||
| Line 67: | Line 74: | ||
echo -n "os4xdebugd... " | echo -n "os4xdebugd... " | ||
killall os4xdebugd 1> /dev/null 2>1 | killall os4xdebugd 1> /dev/null 2>1 | ||
| − | echo -n "os4xclientd... " | + | if [ $OS4X_ENTERPRISE -gt 0 ] |
| − | + | then | |
| + | echo -n "os4xclientd... " | ||
| + | killall os4xclientd 1> /dev/null 2>1 | ||
| + | fi | ||
echo OK | echo OK | ||
;; | ;; | ||
| Line 94: | Line 104: | ||
echo -n "... os4xdebugd OK " | echo -n "... os4xdebugd OK " | ||
fi | fi | ||
| − | + | if [ $OS4X_ENTERPRISE -gt 0 ] | |
| − | if [ $ | ||
then | then | ||
| − | + | pidof os4xclientd > /dev/null | |
| + | if [ $? -ne 0 ] | ||
| + | then | ||
| + | echo "... os4xclientd is not running" | ||
| + | else | ||
| + | echo "... os4xclientd OK " | ||
| + | fi | ||
else | else | ||
| − | + | echo "" | |
fi | fi | ||
| − | |||
;; | ;; | ||
*) | *) | ||
Revision as of 20:16, 11 April 2007
For runlevel scripts, this script can be used as a basis for further needs. It works good in an OS4XBox environment.
#! /bin/sh
### BEGIN INIT INFO
# Provides: OS4X
# Required-Start: mysql
# Should-Start: mysql
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: OS4X
# Description: Start and stop OS4X daemons
### END INIT INFO
# Check for existence of needed config file and read it
OS4X_CONFIG=/etc/os4x.conf
test -r $OS4X_CONFIG || { echo "$OS4X_CONFIG not existing";
if [ "$1" = "stop" ]; then exit 0;
else exit 6; fi; }
# first, source the config file for database parameters
. $OS4X_CONFIG
# retrieve backup directory
OS4X_BINDIR=`echo "SELECT value FROM ${TABLEPREFIX}configuration WHERE name='bin_directory'" | $MYSQLCLIENT --silent --user=$DB_USER --password=$DB_PASS --host=$DB_HOST $DB_NAME`
OS4X_ENTERPRISE=`echo "SELECT value FROM ${TABLEPREFIX}configuration WHERE name='os4x_enterprise'" | $MYSQLCLIENT --silent --user=$DB_USER --password=$DB_PASS --host=$DB_HOST $DB_NAME`
# Check for missing binaries (stale symlinks should not happen)
# Note: Special treatment of stop for LSB conformance
OS4XRD_BIN=$OS4X_BINDIR/os4xrd
test -x $OS4XRD_BIN || { echo "$OS4XRD_BIN not installed";
if [ "$1" = "stop" ]; then exit 0;
else exit 5; fi; }
OS4XSQD_BIN=$OS4X_BINDIR/os4xsqd
test -x $OS4XSQD_BIN || { echo "$OS4XSQD_BIN not installed";
if [ "$1" = "stop" ]; then exit 0;
else exit 5; fi; }
OS4XDEBUGD_BIN=$OS4X_BINDIR/os4xdebugd
test -x $OS4XDEBUGD_BIN || { echo "$OS4XDEBUGD_BIN not installed";
if [ "$1" = "stop" ]; then exit 0;
else exit 5; fi; }
if [ $OS4X_ENTERPRISE -gt 0 ]
then
OS4XCLIENTD_BIN=$OS4X_BINDIR/os4xclientd
test -x $OS4XCLIENTD_BIN || { echo "$OS4XCLIENTD_BIN not installed";
if [ "$1" = "stop" ]; then exit 0;
else exit 5; fi; }
fi
case "$1" in
start)
echo -n "Starting OS4X "
echo -n "os4xrd... "
$OS4XRD_BIN
echo -n "os4xsqd... "
$OS4XSQD_BIN
echo -n "os4xdebugd... "
$OS4XDEBUGD_BIN
if [ $OS4X_ENTERPRISE -gt 0 ]
then
echo -n "os4xclientd... "
$OS4XCLIENTD_BIN
fi
echo "OK"
;;
stop)
echo -n "Shutting down OS4X "
echo -n "os4xrd... "
killall os4xrd 1> /dev/null 2>1
echo -n "os4xsqd... "
killall os4xsqd 1> /dev/null 2>1
echo -n "os4xdebugd... "
killall os4xdebugd 1> /dev/null 2>1
if [ $OS4X_ENTERPRISE -gt 0 ]
then
echo -n "os4xclientd... "
killall os4xclientd 1> /dev/null 2>1
fi
echo OK
;;
status)
echo -n "Checking for service OS4X "
pidof os4xrd > /dev/null
if [ $? -ne 0 ]
then
echo -n "... os4xrd is not running"
else
echo -n "... os4xrd OK "
fi
pidof os4xsqd > /dev/null
if [ $? -ne 0 ]
then
echo -n "... os4xsqd is not running"
else
echo -n "... os4xsqd OK "
fi
pidof os4xdebugd > /dev/null
if [ $? -ne 0 ]
then
echo "... os4xdebugd is not running"
else
echo -n "... os4xdebugd OK "
fi
if [ $OS4X_ENTERPRISE -gt 0 ]
then
pidof os4xclientd > /dev/null
if [ $? -ne 0 ]
then
echo "... os4xclientd is not running"
else
echo "... os4xclientd OK "
fi
else
echo ""
fi
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
;;
esac
# rc_exit