Being happy for eventually managed to create an init.d script for uc4 service manager on linux (centos 6), I feel the need to share my "achievement" ;). So far it seems to be simple, readable and working. The only prerequisite is the "daemonize" util (yum install deamonize) which as fas as I know is available to any unix/linux distro.
Cheers
Feel free to comment or suggest.
## =================UC4 Service Manager Init Script ============================
#!/bin/bash
#
# uc4.svcmgr UC4 Service Manager
#
# chkconfig: 345 70 30
# description: uc4 service manager
# processname: ucybsmgr
# Source function library.
. /etc/init.d/functions
# Service settings
# see:
http://ae.koroglu.org/alternative-way-to-daemonize-java-applications-on-red-hat-centos-linux/service_dir="/home/uc4/automic/svcmgr/bin"
service_name="ucybsmgr"
service_prog="$service_dir/$service_name" # Service name
service_user="root" # User/group of process
pid_file="/var/run/$service_name.pid" # Pid file
log_file="/var/log/$service_name.log" # StdOut log file
errlog_file="/var/log/$service_name-error.log" # StdErr log file
RETVAL=0
start() {
echo -n $"Starting $service_name: "
if [ $EUID -ne 0 ]; then
RETVAL=1
failure
elif [ -s /var/run/$service_name.pid ]; then
RETVAL=1
echo -n $"already running.."
failure
else
daemonize -u $service_user -p $pid_file -o $log_file -e $errlog_file -c $service_dir $service_prog && success || failure
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$service_name
fi;
echo
return $RETVAL
}
stop() {
echo -n $"Stopping $service_name: "
if [ $EUID -ne 0 ]; then
RETVAL=1
failure
else
killproc -p $pid_file
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$service_name
fi;
echo
return $RETVAL
}
restart(){
stop
start
}
case "$1" in
start)
start
RETVAL=$?
;;
stop)
stop
RETVAL=$?
;;
restart)
restart
RETVAL=$?
;;
status)
status $service_name
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
RETVAL=2
esac
exit $RETVAL