Ciao a tutti.
Ho preparato uno script molto semplice per avviare un programma come servizio. Tale programma apre un socket e rimane in attesa di connessioni - ergo non ha nulla da fare. Eppure se lo avvio con start-stop-daemon la cpu viene mandata al massimo senza motivo. Nessun errore viene generato dal programma e il programma funziona correttamente.
Ovviamente se lo avvio da riga di comando il programma non manda la cpu al massimo.
Allego lo script:
codice:
#!/bin/bash
# init.d/PlannerBossServer {start|stop|restart}
#
Avvia() {
start-stop-daemon --chuid root --background --chdir /usr/PlannerBossServer --start --make-pidfile --pidfile /usr/PlannerBossServer/PlannerBossServer.pid \
--exec /usr/PlannerBossServer/./PlannerBossServer &
}
Arresta() {
if [ -f /usr/PlannerBossServer/PlannerBossServer.pid ]; then
start-stop-daemon --stop --pidfile /usr/PlannerBossServer/PlannerBossServer.pid
rm /usr/PlannerBossServer/PlannerBossServer.pid
else
echo "PlannerBossServer daemon does not seem to be running"
fi
}
case "$1" in
start)
echo -n "Starting PlannerBossServer daemon: "
Avvia
echo
;;
stop)
echo -n "Stopping PlannerBossServer daemon: "
Arresta
echo
;;
restart)
echo -n "Stopping PlannerBossServer daemon: "
Arresta
echo -n "Restarting PlannerBossServer daemon: "
Avvia
echo
;;
*)
echo "Utilizzo: PlannerBossServer {start|stop|restart}"
exit 1
esac
exit 0
Come vedete lo script è minimale.
Può essere che il fatto che il programma stampi delle righe (programma in avvio, connessione in corso..) crei problemi a start-stop-daemon?