SYSTEM V /bin/sh initialization scripts between Lenny and Ubuntu Server 9.04
Lisa Kachold
lisakachold at obnosis.com
Wed Mar 24 15:57:57 MST 2010
What happened?
I was able to get an application to start with the same /bin/sh script that
ran on Lenny, but will not run in Ubuntu LTS Serrver?
It's telling me the user path and file path are not there.
root at storm:/home/sts/current/examples# cat /etc/init.d/stsd
#! /bin/sh
# AUTOMATICLLY GENERATED INIT SCRIPT FROM LAST SETUP.sh run.
# PLEASE CHECK THAT PATHS ARE CORRECT BEFORE USAGE!
PREFIX=/home/sts/current
# CONFPREFIX should preferable be common for all versions
CONFPREFIX=$PREFIX
#CONFPREFIX=/home/sts/current
# Do we want a watchdog process or not. 1 is yes, 0 is no.
WATCHDOG=1
# Don't run axissts as root. Specify its user here. Note that this
# user must have write access to $PREFIX.
USER=sts
# The maximum number of open files we can handle before the
# system stops it. Change this if you have defined a higher value in
# your kernel.
FILES=10000
STARTPROGRAM=$PREFIX/bin/run_axissts.sh
DAEMON=$PREFIX/bin/axissts
SERVICENAME=sts_ststorm8080
CONFIGFILE=$CONFPREFIX/etc/${SERVICENAME}.conf
KEYDIR=/home/sts/etc/keys
PATH=/.:/bin:/usr/bin:/sbin:/usr/sbin
PIDFILE=$CONFPREFIX/${SERVICENAME}.pid
WDPIDFILE=$CONFPREFIX/${SERVICENAME}watchdog.pid
ARGS="-f $CONFIGFILE -d -p $PIDFILE -K $KEYDIR"
# Check for existence of $PREFIX.
if [ -z $PREFIX ]
then
echo "You must configure where you have installed $SERVICENAME!"
exit 0
fi
# Check if we have write access to the $CONFPREFIX directory
su $USER -c "test -w $CONFPREFIX"
filestatus=$?
if [ $filestatus != "0" ]
then
echo "The user $USER needs write access to $CONFPREFIX."
exit 0
fi
# Check if we have a configuration file.
if [ ! -f $CONFIGFILE ]
then
echo "No configuration file: $CONFIGFILE"
exit 0
fi
# Check if we have a key directory.
if [ ! -d $KEYDIR ]
then
echo "No key directory!"
echo "Place the key file you have been given from Axis in $KEYDIR"
exit 0
fi
if [ ! -x $DAEMON ]
then
echo "No such file: $DAEMON"
exit 0
fi
case "$1" in
start)
echo "Starting Server: $SERVICENAME:"
# Bump up the number of filedescriptors we can use.
ulimit -n $FILES
if [ $WATCHDOG = 1 ]
then
COMMAND="$STARTPROGRAM $DAEMON $CONFIGFILE $PIDFILE $WDPIDFILE $KEYDIR
&"
else
COMMAND="$DAEMON $ARGS"
fi
# Run the daemon as $USER.
echo "Starting $COMMAND"
su $USER -c "$COMMAND"
;;
stop)
echo "Stopping Server: $SERVICENAME"
# Check for watchdog pid file.
if [ -f $WDPIDFILE ]
then
kill `cat $WDPIDFILE`
rm -f $WDPIDFILE
else
if [ $WATCHDOG = 1 ]
then
echo "No Server Watchdog pid file: $WDPIDFILE!"
exit 0
fi
fi
# Check for PIDFILE.
if [ ! -f $PIDFILE ]
then
echo "No ST Server pid file: $PIDFILE!"
exit 0
fi
kill `cat $PIDFILE`
rm -f $PIDFILE
;;
reload)
echo "Not implemented."
;;
force-reload|restart)
sh $0 stop
sh $0 start
;;
status)
if [ -f $PIDFILE ]
then
PID=`cat $PIDFILE`
echo "ST Server running as process $PID"
exit 0
fi
;;
*)
echo "Usage: /etc/init.d/$SERVICENAME
{start|stop|restart|force-reload|status}"
exit 1
;;
esac
exit 0
root at storm:/home/sts/current/examples#
When I run the /etc/init.d/stsd file I get:
in/connection_monitor.php
root 7042 6860 0 15:47 pts/1 00:00:00 grep sts
root at storm:/home/sts/current/examples# ls -al
total 72
drwxr-xr-x 2 sts sts 4096 2010-03-24 15:44 .
drwxrwxrwx 14 sts sts 4096 2010-03-24 15:44 ..
-rwxr-xr-x 1 sts sts 2093 2008-08-08 04:05 axissts.conf
-rwxr-xr-x 1 sts sts 1520 2009-09-28 01:39 gst-install-deps.sh
-rwxr-xr-x 1 sts sts 795 2007-10-26 05:31 handle_failed_queries.sh
-rwxr-xr-x 1 sts sts 216 2008-08-20 03:57 logrotate-sts
-rwxr-xr-x 1 sts sts 3558 2008-08-08 03:56 mediaproxyd
-rwxr-xr-x 1 sts sts 110 2008-07-28 07:27 php.ini
-rwxr-xr-x 1 sts sts 3303 2009-08-14 07:31 sthelpers
-rwxr-xr-x 1 sts sts 18676 2010-02-23 01:02 stmediaconvert
-rwxr-xr-x 1 sts sts 2900 2010-03-24 15:44 stsd
-rwxr-xr-x 1 sts sts 2979 2010-03-24 14:07 stsd_dynamic
-rwxr-xr-x 1 sts sts 4917 2009-09-18 05:43 virtualhost.conf
root at storm:/home/sts/current/examples# cat /etc/init.d/stsd
#! /bin/sh
# AUTOMATICLLY GENERATED INIT SCRIPT FROM LAST SETUP.sh run.
# PLEASE CHECK THAT PATHS ARE CORRECT BEFORE USAGE!
PREFIX=/home/sts/current
# CONFPREFIX should preferable be common for all versions
#CONFPREFIX=$PREFIX
CONFPREFIX=/home/sts/current
# Do we want a watchdog process or not. 1 is yes, 0 is no.
WATCHDOG=1
# Don't run axissts as root. Specify its user here. Note that this
# user must have write access to $PREFIX.
USER=sts
# The maximum number of open files the ST Server can handle before the
# system stops it. Change this if you have defined a higher value in
# your kernel.
FILES=10000
STARTPROGRAM=$PREFIX/bin/run_axissts.sh
DAEMON=$PREFIX/bin/axissts
SERVICENAME=sts_ststorm8080
CONFIGFILE=$CONFPREFIX/etc/${SERVICENAME}.conf
KEYDIR=/home/sts/etc/keys
PATH=/.:/bin:/usr/bin:/sbin:/usr/sbin
PIDFILE=$CONFPREFIX/${SERVICENAME}.pid
WDPIDFILE=$CONFPREFIX/${SERVICENAME}watchdog.pid
ARGS="-f $CONFIGFILE -d -p $PIDFILE -K $KEYDIR"
# Check for existence of $PREFIX.
if [ -z $PREFIX ]
then
echo "You must configure where you have installed $SERVICENAME!"
exit 0
fi
# Check if we have write access to the $CONFPREFIX directory
su $USER -c "test -w $CONFPREFIX"
filestatus=$?
if [ $filestatus != "0" ]
then
echo "The user $USER needs write access to $CONFPREFIX."
exit 0
fi
# Check if we have a configuration file.
if [ ! -f $CONFIGFILE ]
then
echo "No configuration file: $CONFIGFILE"
exit 0
fi
# Check if we have a key directory.
if [ ! -d $KEYDIR ]
then
echo "No key directory!"
echo "Place the key file you have been given from Axis in $KEYDIR"
exit 0
fi
if [ ! -x $DAEMON ]
then
echo "No such file: $DAEMON"
exit 0
fi
case "$1" in
start)
echo "Starting Axis ST Server: $SERVICENAME:"
# Bump up the number of filedescriptors we can use.
ulimit -n $FILES
if [ $WATCHDOG = 1 ]
then
COMMAND="$STARTPROGRAM $DAEMON $CONFIGFILE $PIDFILE $WDPIDFILE $KEYDIR
&"
else
COMMAND="$DAEMON $ARGS"
fi
# Run the daemon as $USER.
echo "Starting $COMMAND"
su $USER -c "$COMMAND"
;;
stop)
echo "Stopping Axis ST Server: $SERVICENAME"
# Check for watchdog pid file.
if [ -f $WDPIDFILE ]
then
kill `cat $WDPIDFILE`
rm -f $WDPIDFILE
else
if [ $WATCHDOG = 1 ]
then
echo "No ST Server Watchdog pid file: $WDPIDFILE!"
exit 0
fi
fi
# Check for PIDFILE.
if [ ! -f $PIDFILE ]
then
echo "No ST Server pid file: $PIDFILE!"
exit 0
fi
kill `cat $PIDFILE`
rm -f $PIDFILE
;;
reload)
echo "Not implemented."
;;
force-reload|restart)
sh $0 stop
sh $0 start
;;
status)
if [ -f $PIDFILE ]
then
PID=`cat $PIDFILE`
echo "ST Server running as process $PID"
exit 0
fi
;;
*)
echo "Usage: /etc/init.d/$SERVICENAME
{start|stop|restart|force-reload|status}"
exit 1
;;
esac
exit 0
root at storm:/home/sts/current/examples# clear
root at storm:/home/sts/current/examples# whoami
root
root at storm:/home/sts/current/examples# su - sts
sts at storm:~$ /etc/init.d/stsd start
Password:
su: Authentication failure
sts at storm:~$ exit
logout
root at storm:/home/sts/current/examples# cd /etc/init.d
root at storm:/etc/init.d# ls -al /home/sts/current/etc
total 28
drwxr-xr-x 2 sts sts 4096 2010-03-24 15:12 .
drwxrwxrwx 14 sts sts 4096 2010-03-24 15:44 ..
-rwxrwxrwx 1 sts sts 1703 2006-05-16 05:41 axissts.conf
-rwxrwxrwx 1 sts sts 447 2010-03-24 15:12 mediaproxyd.conf
-rwxrwxrwx 1 sts sts 447 2010-03-24 14:46 mediaproxy_mediastorm554.conf
-rwxrwxrwx 1 sts sts 4 2010-03-24 14:49
record_manager.php_storm.ivedasolutions.com.pid
-rwxrwxrwx 1 sts sts 1559 2010-03-24 14:07 sts_ststorm8080.conf
root at storm:/etc/init.d# ls -al /home/sts/current/bin
total 568
drwxr-xr-x 2 sts sts 4096 2010-03-24 14:59 .
drwxrwxrwx 14 sts sts 4096 2010-03-24 15:44 ..
-rwxr-xr-x 1 sts sts 125372 2010-02-23 01:02 axissts
-rwxr-xr-x 1 sts sts 8909 2009-02-02 07:26 batch_upgrade.php
-rwxr-xr-x 1 sts sts 29416 2009-08-17 04:21 camera_maintenance.php
-rwxr-xr-x 1 sts sts 4746 2009-09-02 02:28 camera_upgrade.php
lrwxrwxrwx 1 sts sts 25 2010-03-24 12:44 config_main.php ->
../config/config_main.php
-rwxr-xr-x 1 sts sts 7078 2009-09-02 02:28 connection_monitor.php
-rwxr-xr-x 1 sts sts 3025 2009-08-25 03:13 event_cleanup.php
-rwxr-xr-x 1 sts sts 54670 2009-08-28 09:53 event_rpcgen.py
-rwxr-xr-x 1 sts sts 784 2006-08-03 03:06 exec_delayed.php
-rwxr-xr-x 1 sts sts 745 2009-01-05 06:23
generate_self_signed_certificate.sh
-rwxr-xr-x 1 sts sts 122260 2010-02-23 01:02 mediaproxy
-rwxr-xr-x 1 sts sts 13508 2010-02-23 01:02 mjpg2movie
-rwxr-xr-x 1 sts sts 4279 2009-03-06 05:50 password_manage.php
-rwxr-xr-x 1 sts sts 12541 2007-10-26 00:04 prune_event_dirs.php
-rwxr-xr-x 1 sts sts 3439 2009-08-25 03:13 quota_cleanup.php
-rwxr-xr-x 1 sts sts 6531 2009-10-05 06:07 record_manager.php
-rwxr-xr-x 1 sts sts 7732 2009-08-25 03:13 rmevents.php
-rwxr-xr-x 1 sts sts 1834 2008-10-23 05:54 run_axissts.sh
-rwxr-xr-x 1 sts sts 2422 2008-10-20 01:08 run_mediaproxy.sh
-rwxr-xr-x 1 sts sts 18311 2009-10-06 10:34 server_watchdog.php
-rwxr-xr-x 1 sts sts 1342 2009-03-11 06:24 session_cleanup.php
-rwxr-xr-x 1 sts sts 4302 2009-10-01 07:52 smsclient_http_get.php
-rwxr-xr-x 1 sts sts 4821 2009-10-01 07:52 smsclient_pixie.php
-rwxr-xr-x 1 sts sts 57324 2010-02-23 01:02 smtpclient
-rwxr-xr-x 1 sts sts 18676 2010-02-23 01:02 stmediaconvert
-rwxr-xr-x 1 sts sts 375 2009-07-15 05:51 stmediaconvert.sh
root at storm:/etc/init.d# ./stsd start
Starting Axis ST Server: sts_ststorm8080:
Starting /home/sts/current/bin/run_axissts.sh /home/sts/current/bin/axissts
/home/sts/current/etc/sts_ststorm8080.conf
/home/sts/current/sts_ststorm8080.pid
/home/sts/current/sts_ststorm8080watchdog.pid /home/sts/etc/keys &
/home/sts/current/bin/run_axissts.sh: 101: /home/sts/current/bin/axissts:
not found
root at storm:/etc/init.d#
WTF? (so confiused)!
I even added a ./ to the stsd $PATH and that doesn't work?
No selinux - what could it be?
--
Office: (480)307-8707
AT&T: (503)754-4452
Systems Engineer
SomeplaceReallyGood.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.PLUG.phoenix.az.us/pipermail/plug-discuss/attachments/20100324/30c05b9c/attachment.htm>
More information about the PLUG-discuss
mailing list