#! /bin/sh # Copyright (c) 2003 SuSE Linux AG Nuernberg, Germany. # # Author: Stephan Kulow # # Modified for openmamba by Silvan Calarco # ### BEGIN INIT INFO # Provides: icecream # Required-Start: $network $syslog $remote_fs # Required-Stop: $network $remote_fs # Default-Start: 3 5 # Default-Stop: # Description: distributed compiler daemon # Short-Description: icecc ### END INIT INFO # # chkconfig: 35 98 2 # description: Distributed compiler daemon # # Determine the base and follow a runlevel link name. base=${0##*/} link=${base#*[SK][0-9][0-9]} # Force execution if not called by a runlevel directory. test -x /usr/sbin/iceccd || exit 0 . /etc/init.d/functions . /etc/sysconfig/icecream case "$1" in start) echo -n "Starting Distributed Compiler Daemon" netname= if test -n "$ICECREAM_NETNAME"; then netname="-n $ICECREAM_NETNAME" fi if test "$ICECREAM_RUN_SCHEDULER" == "yes"; then logfile="" if test -z "$ICECREAM_SCHEDULER_LOG_FILE"; then ICECREAM_SCHEDULER_LOG_FILE="/var/log/icecc_scheduler" fi logfile="-l $ICECREAM_SCHEDULER_LOG_FILE" : > $ICECREAM_SCHEDULER_LOG_FILE chown icecc:icecc $ICECREAM_SCHEDULER_LOG_FILE daemon --user icecc /usr/sbin/icecc-scheduler -d $logfile $netname fi logfile="" if test -n "$ICECREAM_LOG_FILE"; then touch $ICECREAM_LOG_FILE chown icecc:icecc $ICECREAM_LOG_FILE logfile="-l $ICECREAM_LOG_FILE" else touch /var/log/iceccd chown icecc:icecc /var/log/iceccd fi nice= if test -n "$ICECREAM_NICE_LEVEL"; then nice="--nice $ICECREAM_NICE_LEVEL" fi scheduler= if test -n "$ICECREAM_SCHEDULER_HOST"; then scheduler="-s $ICECREAM_SCHEDULER_HOST" fi noremote= if test "$ICECREAM_ALLOW_REMOTE" = "no" 2> /dev/null; then noremote="--no-remote" fi maxjobs= if test -n "$ICECREAM_MAX_JOBS"; then if test "$ICECREAM_MAX_JOBS" -eq 0 2> /dev/null; then maxjobs="-m 1" noremote="--no-remote" else maxjobs="-m $ICECREAM_MAX_JOBS" fi fi loadproc /usr/sbin/iceccd -d $logfile $nice $scheduler $netname -u icecc -b "$ICECREAM_BASEDIR/environments" $maxjobs $noremote evaluate_retval; echo ;; stop) echo -n "Shutting down Distributed Compiler Daemon" killproc /usr/sbin/iceccd TERM if test "$ICECREAM_RUN_SCHEDULER" == "yes"; then killproc /usr/sbin/icecc-scheduler TERM fi evaluate_retval; echo ;; restart) ## If first returns OK call the second, if first or ## second command fails, set echo return value. $0 stop; sleep 1 && $0 start ;; try-restart|condrestart) ## Do a restart only if the service was active before. ## Note: try-restart is now part of LSB (as of 1.9). ## RH has a similar command named condrestart. if test "$1" = "condrestart"; then echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}" fi $0 status if test $? = 0; then $0 restart fi ;; reload|force-reload) if test "$ICECREAM_RUN_SCHEDULER" == "yes"; then killproc -HUP /usr/sbin/scheduler fi killproc -HUP /usr/sbin/iceccd ;; status) echo -n "Checking for Distributed Compiler Daemon: " statusproc /usr/sbin/iceccd ;; *) echo "Usage: $0 {start|stop|status|restart|try-restart|reload}" exit 1 ;; esac