Comment installer un script init.d?

71

J'essaye d'installer un script init.d, pour exécuter céleri pour des tâches de planification. Voici les étapes que j'ai suivies:

  • copié le fichier celeryd et collé dans le dossier /etc/init.d/
  • créé un fichier de configuration celeryd dans le dossier / etc / default /

maintenant, quand j'ai essayé de le commencer par sudo /etc/init.d/celeryd start, ça jette une erreursudo: /etc/init.d/celeryd: command not found

J'ai cherché sur Google comment installer init.d, j'ai eu cette question SO .

il dit d'émettre un uname -aet quand j'obtiens ceci:

Linux capsonesystem8-desktop 3.2.0-43-generic-pae 
#68-Ubuntu SMP Wed May 15 03:55:10 UTC     
2013 i686 i686 i386 GNU/Linux

et aussi il dit utiliser utils comme insservpour activer le script init.d ainsi essayé:

insserv /etc/init.d/celeryd mais il jette une erreur insserv: command not found

alors j'ai essayé d'installer insserv sudo apt-get install insserv . mais il est déjà installé:

insserv is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 222 not upgraded.

Alors, comment installer le script init.d? Toute aide serait appréciée.

update1:

quand j'ai essayé:

$ sh -x /etc/init.d/celeryd start

il en révèle errors. c'est peut-être pour cette raison que le service ne démarre pas.

update2:

J'ai effacé toutes les erreurs quand je cours $ sh -x /etc/init.d/celeryd startmais sudo /etc/init.d/celeryd startjette toujours l' command not founderreur

Suhailvs
la source
Je n’ai pas le temps de répondre, mais si vous voulez que cela s’exécute dans le cadre de votre démarrage, je pense que vous devez ajouter des liens vers votre script dans les différents répertoires du niveau d’exécution afin que Linux puisse le démarrer et l’arrêter pendant toi. (/etc/rc[0-6].d) Ce processus est progressivement remplacé par une méthode plus récente (je pense que cela s'appelle upstart.), mais je n'ai pas du tout examiné cela. Le lien dans votre message en aborde une partie.
Joe

Réponses:

55

Votre celerydscript n'est probablement pas exécutable, c'est pourquoi il sudo /etc/init.d/celerydrevient command not found. Donc, vous devez d'abord le rendre exécutable.

Pour ce faire, exécutez les commandes suivantes:

sudo chmod 755 /etc/init.d/celeryd
sudo chown root:root /etc/init.d/celeryd

La première ligne modifie les autorisations en -rwxr-xr-xet la deuxième ligne garantit que le propriétaire et le propriétaire du groupe sont root.

Une fois que cela est fait, je suppose que vous devrez utiliser sudo /etc/init.d/celeryd startpour démarrer le démon.

Alaa Ali
la source
70

Lorsque vous copiez le script en place, n'oubliez pas de le rendre exécutable et appartenant à root:

sudo chmod +x /etc/init.d/celeryd
sudo chown root:root /etc/init.d/celeryd

Une fois que vous avez installé cela, vous pouvez le configurer pour qu'il démarre automatiquement au démarrage avec:

sudo update-rc.d celeryd defaults
sudo update-rc.d celeryd enable
David Purdue
la source
Ce serait considéré comme la meilleure réponse, cause de pointer vers update-rc.d.
MAChitgarha
3

Si vous obtenez l' command not founderreur lorsque vous l'exécutez insserv, vous pouvez y remédier en exécutant la commande suivante:

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

Alors voir insserv -hou man insservpour de l'aide.

Aussi, vous pouvez essayer avec:

sudo update-rc.d celeryd defaults

Source: https://askubuntu.com/a/334043/147044

Radu Rădeanu
la source
1

C'est la séquence de commande pour lancer automatiquement votre démon au démarrage:

sudo cd /etc/init.d
sudo chown root:root celeryd
sudo chmod 755 celeryd
sudo ln -s /usr/lib/insserv/insserv /sbin/insserv
sudo insserv celeryd
Oleg Bondar '
la source