Bon, je ne sais pas si tu as vu qu’il y avait un paquet kfolding pour kde. Je ne le vois tirer aucune dépendance, mais tu peux peut être t’en sortir sans install “à la mano”.
Sinon, pour ton script, tu as bien chopé le principe mais pas les habitudes, comme c’est utile de respecter un format canonique, je m’étends:
d’abord, on met un “cartouche” de commentaires indiquant quelques infos qui sont utilisés par rc-update, genre pour freshclam par exemple:
[code]### BEGIN INIT INFO
Provides: clamav-freshclam
Required-Start: $syslog
Should-Start: clamav-daemon
Required-Stop:
Should-Stop:
Default-Start: 2 3 4 5
Default-Stop: 0 6
Short-Description: ClamAV virus database updater
Description: Clam AntiVirus virus database updater
END INIT INFO[/code]Ca n’empêche pas de fonctionner, mais ça donne les éléments pour que le rc-update default fonctionne bien.
Ensuite, il est de bon usage de regrouper les noms des commandes et des fichiers utilisés dans des variables en début de script, et en particulier un élément important que tu n’utilises pas mais qui est bien utiles: le fichier de PID qui permet de killer facilement le demon:
DAEMON=/home/folding/folding/FAH504-Linux.exe
NAME=folding@home
DESC="Démon de folding@home"
CHUID="folding"
PIDFILE=/var/run/folding.pid
Ensuite, il y a toute une batterie de fonctions standards de la lsb pour lancer proprement les démons, déclarées dans un include exterieur qu’il faut “sourcer” pour pouvoir les utiliser:
if ! [ -x "/lib/lsb/init-functions" ]; then
. /lib/lsb/init-functions
else
echo "E: /lib/lsb/init-functions not found, lsb-base (>= 3.0-6) needed"
exit 1
fi
on teste aussi à tous hasard que tout est là pour démarrer:
aprés, en utilisant les routines fournies par la lsb, l’ecriture de start et stop avec un user non root devient triviale:
case "$1" in
start)
log_daemon_msg "Starting $DESC" "$NAME"
start-stop-daemon --start --quiet \
--pidfile $PIDFILE \
--chuid $CHUID \
--exec $DAEMON || log_end_msg 1
log_end_msg 0
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
start-stop-daemon --stop --quiet --retry 15 --oknodo \
--pidfile $PIDFILE \
--exec $DAEMON || log_end_msg 1
log_end_msg 0
;;
restart|force-reload)
#
# If the "reload" option is implemented, move the "force-reload"
# option to the "reload" entry above. If not, "force-reload" is
# just the same as "restart".
#
echo -n "Restarting $DESC: "
log_daemon_msg "Restarting $DESC: "
start-stop-daemon --stop --quiet --retry 15 --oknodo --pidfile \
/var/run/$NAME.pid --exec $DAEMON || log_end_msg 1
start-stop-daemon --start --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON || log_end_msg 1
log_end_msg 0
;;
*)
N=/etc/init.d/$NAME
# echo "Usage: $N {start|stop|restart|force-reload}" >&2
log_action_msg "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
Et voilà !