Comment créer un script de démarrage init.d

8

Je veux juste exécuter une commande très simple au démarrage. Comment puis je faire ça? J'ai recherché google et il a des exemples très compliqués, mais ce dont j'ai besoin est simplement d'exécuter ce script au démarrage. Comment puis je faire ça?

Scénario

./init.d/opscenter-agent start

sed
la source

Réponses:

8

Si vous souhaitez le faire au démarrage du système (par opposition à lorsque vous vous connectez à votre ordinateur), entrez les commandes que vous souhaitez exécuter /etc/rc.local.

Voir [Ubuntu] Exécution d'un script au démarrage et à l'arrêt .

Li-aung Yip
la source
L'OP a spécifiquement demandé un script init.d, ce qui n'est vraiment pas le cas. C'est une approche connexe, principalement parce que c'est la façon dont nous faisions les choses il y a 30 ans, et plus ou moins jamais maintenant grâce à des approches plus récentes comme init.d. (qui est à son tour déconseillé au profit de / etc / init de systemd).
mc0e
3

Si le script n'a pas besoin d'être exécuté par root, vous pouvez le faire:

1) Ouvrez "Préférences des applications de démarrage" ( Alt+ F2et collez gnome-session-propertieset appuyez Enter),

2) Appuyez sur "Ajouter" et sélectionnez votre script:

entrez la description de l'image ici

entrez la description de l'image ici


Si vous n'utilisez pas un environnement graphique, vous pouvez mettre les commandes juste avant la ligne exit 0dans ce fichier: /etc/rc.local. (Pour le modifier, collez-le simplement sur le terminal sudo nano /etc/rc.local.

desgua
la source
Pas bon puisque j'utilise Putty pour gérer le serveur Debian, pas d'interface graphique :)
sed
Vous pouvez mettre les commandes (ou un lien vers votre script) dans ce fichier:/etc/rc.local
desgua
Il s'agit d'une alternative au script init.d demandé par l'OP.
mc0e
1

L'approche /etc/rc.local «exécutera une commande très simple au démarrage», mais ce n'est pas une approche de script init.d, et elle est de différentes manières inférieure. (Cela peut ne pas avoir d'importance, selon votre objectif).

Contrairement aux scripts init.d, les commandes rc.local n'offrent pas d'interface standard pour démarrer et arrêter un processus, et elles n'offrent pas beaucoup de capacité d'influence lorsqu'elles sont exécutées dans le processus de démarrage. Vous pouvez voir dans le /etc/init.d/rc.localscript que cela est exécuté après tout le reste ( Required-Start: $all).

Si un script init.d est vraiment ce que vous voulez, alors généralement, il suffit de saisir un script existant, de le copier et de le modifier, bien que certains des scripts existants soient plus complexes que vous ne le souhaitez. Puisque c'est ainsi que la plupart des scripts init.d démarrent, ubuntu fournit /etc/init.d/skeleton à cet effet.

A voir également:

  • /etc/init.d/motdest un exemple minimal qui exécute quelque chose au démarrage, mais avec le Required-Startréglage des paramètres quand cela devrait se produire.
  • /etc/init.d/cronest un simple point de départ pour un processus démon (donnez ou prenez la parse_environmentfonction dont vous n'avez probablement pas besoin).
mc0e
la source