HOWTO Créer un script rc
Un article de Gentoo Linux Wiki.
| Méthodes d'installation • CD Live • Noyau et matériel • Portables et Notebooks • Portage • Système • Réseaux et Services • Serveur X • Logiciels fréquemment utilisés • Autres |
Sommaire |
[modifier] Introduction
Les scripts rc sont des scripts créés pour se lancer à un certain moment du démarrage. Ils sont assez faciles à créer et un script simple peut être écrit en moins de cinq minutes.
[modifier] Fonctions requises
- depend()
- Cette fonction est utilisée pour préciser quels services doivent être présents pour lancer ce script.
- start()
- Cela précise ce qui sera effectué lors du lancement du script.
- stop()
- Cela précise ce qui sera effectué lors de l'arrêt du script.
[modifier] Exemple de script
Dans cet exemple, nous créerons un script qui lance un démon exemple
Code : Script exemple
#!/sbin/runscript
depend() {
# le démon a besoin de la fonction internet
need net
}
start() {
# affiche un message sur ce qui est fait
ebegin "Starting Example daemon"
# Lance le processus comme un démon et enregistre le pid
start-stop-daemon --start --quiet --background --pidfile /var/run/example.pid --make-pidfile --exec /usr/bin/example
# Affiche le succès ou l'échec
eend $?
}
stop() {
# affiche un message pour l'utilisateur
ebegin "Stopping Example daemon"
# arrete le démon en se servant du pid enregistré par la fonction start()
start-stop-daemon --stop --quiet --pidfile /var/run/example.pid --name example
# Affiche le succès ou l'échec
eend $?
}
Si vous avez besoin de passer des arguments à l'exécutable utilisant le démon, la section start de votre script ressemblera à ceci : Dans cet exemple, nous lancerons /usr/bin/exemple -d
Code : Lancement avec arguments
start() {
# affiche un message pour l'utilisateur
ebegin "Starting Example daemon"
# Lance le processus comme un démon avec un argument ''-d'' et enregistre le pid
start-stop-daemon --start --quiet --background --pidfile /var/run/example.pid --make-pidfile --exec /usr/bin/example -- -d
# Affiche le succès ou l'échec
eend $?
}
[modifier] Lancer votre propre script
[modifier] Une seule fois
- Assurez vous que le script est dans /etc/init.d/
- Lancez la commande suivante :
Code : Commande
/etc/init.d/exemple start
Votre script exemple sera exécuté immédiatement, une seule fois.
[modifier] A chaque démarrage
- Assurez-vous que le script est dans le répertoire /etc/init.d/
- Lancez la commande suivante :
Code : Commande
rc-update add exemple default
Votre script exemple sera exécuté à chaque démarrage de votre système, après les services dont il dépend.
[modifier] Stopper le script
- Pour le stopper, lancer la commande
Code : Commande
/etc/init.d/exemple stop
- Dans certains cas, le script pense que le programme qu'il a lancé est toujours présent, alors que vous savez qu'il est arrêté (que ce soit parce que vous l'avez arrêté par un autre moyen, ou parce qu'il a planté). Pour régler ce problème, il faut signaler au script que la commande est déjà terminée :
Code : Commande
/etc/init.d/exemple zap
Cela supprimera le fichier de pid et les autres traces du programme, et vous permettra de le relancer.
