Comment exécuter un script au démarrage de CentOS Linux

13

J'ai mis un script dedans /etc/init.d/abc.sh. Maintenant, je veux qu'il s'exécute au démarrage.

Comment puis-je faire cela avec chkconfig?

chkconfig --add abc.sh

Mais je ne sais pas comment cela fonctionne.

Mirage
la source
Il y a un article ancien mais toujours utile sur linuxjournal.com/article/4445
RedGrittyBrick

Réponses:

8

J'utilise souvent juste

/etc/rc.local

Donc, comme ...

echo "/etc/init.d/abc.sh" >> /etc/rc.local

devrait le pirater pour toi. Il y a probablement des endroits plus appropriés, mais quoi que cela fonctionne, sur la plupart des distributions, il semble.

James T Snell
la source
ce script est un démon et j'aiabc start stop restart configurd
Mirage
Vous pouvez peut-être l'appeler en entrant: 'service abc start'
James T Snell
8

Les scripts qui s'exécutent au démarrage ne sont pas considérés comme un script - si vous souhaitez que le script soit exécuté au démarrage, modifiez ce qui suit dans /etc/crontab:

@reboot /path/to/script
saravanakumar
la source
1
Exécuterait-il en tant qu'utilisateur root s'il était placé dans le cron?
The Unknown Dev
2
Voilà une idée géniale! Il est portable et simple. Cela n'endommage pas le coffre. Cela vient après le démarrage des modules système avec des autorisations utilisateur précises .... Dans mon cas sur centos 7, ce serait "@reboot root / path / to / script"
Nicolas Guérinet
2

Jetez un œil à d'autres scripts init existants. Dans chaque script init de style rh, il y a trois indices: les niveaux d'exécution, où le script doit être démarré et la priorité à laquelle il doit être démarré / arrêté. La somme de start + stop doit être normalement 100.

Cette ligne de commentaire est évaluée par chkconfig.

Nils
la source
1

Vous ne pouvez pas sauf si vous lisez /usr/share/doc/initscripts-*/sysvinitfileset structurez votre script en conséquence.

Ignacio Vazquez-Abrams
la source
1

Tu es sur la bonne piste. Votre script bash est au bon endroit et vous l'avez ajouté à votre chkconfig, ce qui signifie que votre script est installé.

Veuillez noter qu'il /etc/init.ds'agit d'un lien symbolique vers/etc/rc.d/init.d

Après avoir ajouté votre script, vous devez sélectionner le niveau d'exécution sur lequel vous souhaitez l'activer: chkconfig --level 35 abc onactivera votre script sur les niveaux d'exécution 3 et 5, vos startups les plus courantes.

Veuillez consulter chkconfig --helppour plus d'informations.

PS. vous pouvez également utiliser ntsysvce qui est un tui pour chkconfig.

Dejan
la source