#!/bin/sh # # Init file for Node server daemon # # chkconfig: 2345 99 01 # description: Node server daemon # # processname: node RETVAL=0 queue="/usr/bin/queue" SYSCONF_FILE=/var/lock/subsys/node # cbelisle@mandrakesoft : We need it to get the functions. INITD=/etc/rc.d/init.d . $INITD/functions # Check queue script file if [ ! -x $queue ]; then gprintf "Package queue not installed\n" exit 0 fi # Count number of CPU nb_cpu=$(grep -c '^processor' /proc/cpuinfo) case "$1" in start) # Start daemon if [ ! -f $SYSCONF_FILE ]; then for (( i = 0; i < $nb_cpu; i++ )); do gprintf "Starting queue %d:" "$i" daemon --user queue $queue -s RETVAL=$? echo done [ $RETVAL -eq 0 ] && touch $SYSCONF_FILE fi ;; stop) # Stop daemon gprintf "Stopping $nb_cpu queue(s): " daemon --user queue $queue -k sleep 2; test -n "$(ps --User queue -o pid | grep -v PID)" && \ kill -TERM $(ps --User queue -o pid | grep -v PID) sleep 2; test -n "$(ps --User queue -o pid | grep -v PID)" && \ kill -KILL $(ps --User queue -o pid | grep -v PID) echo rm -f $SYSCONF_FILE ;; status) # Status if [ -f $SYSCONF_FILE ]; then gprintf "node is (probably) running\n" else gprintf "node is (surely) dead\n" fi ;; reload|restart) # Restart daemon $0 stop $0 start ;; *) # usage gprintf "usage: %s {start|stop|status|reload|restart}\n" "$0" exit 1 ;; esac exit $? exit $RETVAL