Comment définir un script qui s'exécutera au démarrage dans FreeBSD?


10

J'utilise FreeBSD 9 et je veux faire un script qui vérifiera si un câble Ethernet est connecté, et si c'est le cas, s'y connecte. Je veux le configurer pour qu'il s'exécute à chaque démarrage de la machine ou chaque fois que je me connecte. J'ai regardé mon livre UNIX (il est assez obsolète et concerne UNIX en général, pas spécifiquement FreeBSD) et il dit que je peux utiliser crontab, mais je ne peux le faire que pour faire fonctionner les choses à certains moments, pas au démarrage. Quelqu'un peut-il me dire comment je peux y arriver?

Réponses:


11

FreeBSD croncomprend la @rebootdirective temporelle, vous pouvez donc en effet cronexécuter votre script au démarrage. Au lieu des 5 champs horaires habituels, votre crontabentrée pourrait ressembler à ceci:

@reboot /path/to/script

Si vous souhaitez également exécuter la vérification lorsque vous vous connectez, ajoutez un appel au script dans le fichier de votre shell exécute lors de la connexion - cela pourrait être, en fonction de votre coquille, ~/.login, ~/.bash_login, etc.


4

Sur FreeBSD 11 pour ARMv6 (Raspberry Pi), je n'ai pas pu faire fonctionner la @rebootdirective crontab pour l'utilisateur root, et la /etc/rc.localméthode "ajouter des scripts au fichier" a été remplacée par un mécanisme qui exécute automatiquement les scripts situés dans /usr/local/etc/rc.d/.

En d'autres termes, pour exécuter un script au démarrage sur FreeBSD 11 (ou 10?) Et probablement plus récent, placez un script shell exécutable avec l' extension .sh dans ce dossier pour l'exécuter au démarrage:

/usr/local/etc/rc.d/

Vous devrez peut-être créer le rc.ddossier s'il n'existe pas.

Voir http://www.defcon1.org/html/rc-local.html pour plus de détails.


3

Une autre solution pour le script de démarrage serait /etc/rc.local.


1
Bien qu'il man rcindique "En règle générale, le mécanisme /usr/local/etc/rc.d/ est utilisé à la place de rc.local de nos jours, mais si vous souhaitez utiliser rc.local, il est toujours pris en charge. Dans ce cas, il doit source / etc / rc.conf et contiennent du code de démarrage personnalisé supplémentaire pour votre système. La meilleure façon de gérer rc.local, cependant, est de le séparer en scripts rc.d / style et de les placer sous / usr / local / etc / rc .ré/."
zezollo
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.