Problème de script au démarrage (wminput)

Bonjour.

Avant tout, je me permet de vous remercier, car avant d’en arriver là, votre forum m’as aidé à comprendre énormément de choses sur Debian. J’ai réussi à installer des drivers propriétaires, installer des paquets rebelles, et plein d’autres choses grâces aux indications qui sont sur votre forum.

Maintenant, j’ai un léger soucis pour mettre un script au démarrage de mon ordinateur.

Configuration :
-Linux 3.2.0-4-686-pae Debian 3.2.54-2
-Aucuns gestionnaire de fenêtre, aucunes interface graphique
-Paquets wminput (requis dans ce problème) installé et fonctionnel

Contexte :
Mon but est de lancer un logiciel de gestion de communication entre une wiimote et Debian (paquets wminput).
Lors d’un lancement normal (avec la commande “wminput”) tout fonctionne à merveille, et la communication se fait sans problèmes.
La seconde étape aurai été de lancer un script au démarrage de Debian, j’ai donc fait un script en m’inspirant d’autres script déjà fonctionnels, et j’ai tenté de le mettre au démarrage, sans succès car après un démarrage, le script n’est pas exécuté.

Description :

Voici le script que je me suis permis de modifier pour lancer le service :

[code]#! /bin/sh

BEGIN INIT INFO

Provides: wiimote

Required-Start: $all

Required-Stop: $all

Default-Start: 2 3 4 5

Default-Stop: 0 1 6

Short-Description: Wminput for wiimote initscript

Description: Wiimote for wiimote initscript : should be placed in /etc/init.d.

END INIT INFO

PATH=/sbin:/usr/sbin:/bin:/usr/bin

DAEMON=/usr/bin/wminput

DAEMON_ARGS=" -wc perso "

NAME=wiimote

DESC=wminput

case “$1” in

start)
echo -n "Starting $DESC: $NAME"
start-stop-daemon --start --quiet --background --exec $DAEMON --$DAEMON_ARGS
echo “.”
;;
stop)
echo -n "Stopping $DESC: $NAME"
start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
echo “.”
;;
restart|force-reload)
echo -n "Reloading $DESC configuration…"
start-stop-daemon --stop --signal 1 --quiet --background --oknodo --exec $DAEMON
echo “done.”
;;
*)
N=/etc/init.d/$NAME
# echo “Usage: $N {start|stop|restart|reload|force-reload}” >&2
echo “Usage: $N {start|stop|restart|force-reload}” >&2
exit 1
;;
esac
exit 0[/code]

Je l’ai ensuite placé dans /etc/init.d/wiimote

J’ai rendu ce fichier exécutable

J’ai testé son exécution

/etc/init.d/wiimote start /etc/init.d/wiimote stop
Ce qui fonctionne parfaitement.

Et je l’ai mis en démarrage automatique avec

(On peut confirmer en regardant que les liens ont bien été créées dans les dossiers rcx.d, ce qui est bien le cas)

Mais voilà, au redémarrage de la machine, je ne trouve pas le processus dans mes tâches en cours d’exécution (ps -x)

J’ai tenté de modifier mon script, et aussi de refaire ces étapes dans un ordre différent, mais aucuns changements.
Par contre, mes autres scripts (piqué par-ci par-là sur internet, et qui m’ont permis de créer le script présent) fonctionnent bien.

Je me permet de vous solliciter car pour moi, cette manipulation est sensée être assez simpliste (je dit ça car je l’ai déjà effectuée, et que cela à fonctionné plusieurs fois) mais persiste à ne pas fonctionner. Y’aurai-t-il un cas particulier dans ce contexte ?

Merci d’avance de votre aide.

P.S : J’ai cherché une balise [spoil] pour mon code, mais sans succès

Il faut que tu le lances à partir de /etc/rcN.d (N étant le niveau d’exécution de ton system). Le mieux est de le lancer à partir de /etc/rc3.d.
Fait un ls -l pour voir comment sont organisés les liens. Fait en un sur /etc/init.d/wminput.
Attention : Le nom du fichier que tu va donner est important. Le premier caractère doit être S (comme Start) suivi d’un numéro (en général sur 2 chiffres) qui indique quand il va être lancé par rapport aux autres liens du répertoire. Puis ensuite le nom de ton fichier wminput. Pour donner un exemple le nom du lien pourrait être /etc/rc3.d/S11wminput qui pointe sur /etc/init.d/wminput.
Tu peux également créer suivant le même principe un lien qui arrêtera ton processus lors de l’extinction de la machine. Dans ce cas le premier caractère doit être un K (K comme Kill), un numéro à 2 chiffres comme expliqué ci dessus et wminput. Pour donner un exemple le nom du lien pourrait être /etc/rc3.d/K12wminput qui pointe sur /etc/init.d/wminput.

Tiens nous au courant. :slightly_smiling:

Merci de votre aide !

Mais finalement, j’aurai droit à un gage !
Premièrement, j’ai tenté de lancer à partir de /etc/rcX.d/K01wiimote ! (Je met un X car en fait j’en ai un dans le 1 et un autre dans le 6) et ça fonctionne… Tout comme ça fonctionne lorsque je le lançais normalement ! (Petit rappel, c’était lorsque la machine démarrai qu’il ne voulais pas se lancé, malgré que le script soit fonctionnel !)

MAIS ! Grâce à votre idée, je me suis remis dedans, et j’ai simplement regardé les options de wminput… Et j’ai trouvé un -d (qui correspond à un truc comme “Use Daemon”)

Et là, miracle ça fonctionne !

Je en sais pas trop comment, surement que cette option est spécialement faite pour une exécution au démarrage en tant que service, et si c’est le cas je ne vois pas pourquoi une autre option (ou même sans option) ça ne fonctionnerai pas, mais ainsi soit-il, ça fonctionne à présent !

Donc ! Désolé de vous avoir mobilisé pour ce problème, mais finalement, j’aurai pu y penser avant…

Merci quand même, c’est résolu du coup ! :banana-dreads: