web-dev-qa-db-fra.com

Le script dans /etc/init.d ne s'exécute pas au démarrage

Je voulais exécuter mon démon Dropbox automatiquement au démarrage. Je l'ai fait via un terminal, c'est-à-dire que je (1) l'ai déplacé vers /etc/init.d, (2) l'a rendu exécutable et (3) a lancé Sudo update-rc.d dropbox.sh defaults. Nous avons donc

$ ll /etc/init.d/dropbox.sh 
-rwxr-xr-x 1 root root 38 Aug 16 00:18 /etc/init.d/dropbox.sh*

$ cat /etc/init.d/dropbox.sh 
#! /bin/sh
~/.dropbox-dist/dropboxd &

$ ll ~/.dropbox-dist/dropboxd
-rwxr-xr-x 1 skrd skrd 258 Jun  6 03:03 /home/skrd/.dropbox-dist/dropboxd

Toutefois, Dropbox ne s'exécute pas au démarrage.

Notez que l'appel de /etc/init.d/dropbox.sh exécute le démon dropbox sans accroc.

Je sais qu'Ubuntu a une interface graphique pour cela et je pourrais facilement y ajouter le script dropbox mais je me demande pourquoi mes commandes de terminal ne l'ont pas fait? N'est-ce pas plus standard pour les machines Linux?

6
skytreader

Ce peut être un bon moyen si vous utilisez insserv au lieu de Sudo update-rc.d dropbox.sh defaults.

Sudo insserv

De man insserv:

insserv  is a low level tool used by update-rc.d which enables an installed sys‐
tem init script (`boot script')

Si vous obtenez l'erreur command not found, vous pouvez corriger en exécutant la commande suivante:

Sudo ln -s /usr/lib/insserv/insserv /sbin/insserv

Voir insserv -h pour obtenir de l'aide.

2
Radu Rădeanu