Ceci est une ancienne révision du document !
Upstart
Introduction
Il est utile de prendre connaissance de ces deux pages pour appréhender au mieux la gestion des services installés sur votre machine.
Upstart, écrit par Scott James Remnant1), est un successeur des scripts system V et se base sur les événements.
Il fonctionne de manière asynchrone: de la même manière qu'il gère le lancement et l'arrêt des services au démarrage et à l'arrêt de la machine, il les supervise pendant que le système tourne.
Upstart est apparu avec Ubuntu 6.10 "Edgy Eft" afin de remplacer sysinit. Dans les versions suivantes, il a vu son rôle étendu et devrait remplacer dans le futur cron, atd, anacron et peut-être inetd 2)
Fedora utilise aussi Upstart depuis sa version 9 et l'équipe de Debian envisage de l'intégrer dans Debian 6 "Squeeze".
Utilisation
Il existe des logiciels qui prennent en charge les scripts Upstart, néanmoins l'outil qui permet de les contrôler ponctuellement se nomme initctl
.
Pour une explication détaillée n'hésitez pas à consulter sa page de manuel mais il est généralement utilisé ainsi dans un terminal:
sudo initctl ACTION NomService
Où
- NomService est le nom du service a impacter,
- ACTION est la commande que l'on souhaite appliquer au dit service.
La plupart des actions utilisées sont:
Quelque-soit l'action menée sur un service, au prochain démarrage de la machine celui-ci devrait retrouver le status qui lui a été défini par défaut.
Exemples
initctl status udev
donnera l'état du service udev ainsi que son PID si celui-ci est actif,
sudo initctl stop tty3
arrêtera la connexion au tty3 ,
sudo initctl restart gdm
relancera le serveur graphique.
L'action restart
renverra l' erreur initctl: Unknown instance
si le service n'est pas en cours de fonctionnement ou est géré pas un script system V.
start
, stop
, restart
et status
.Par exemple
sudo restart gdm
est équivalent à sudo initctl restart gdm
.
Lister les services démarrés
Saisissez dans un terminal :
initctl list
Vous obtenez la liste des services Upstart accompagnés de leur état ainsi que leur pid.
Modifier l'exécution d'un service
Contrairement aux scripts system V qui utilise l'outil update-rc.d
, Upstart utilise des fichiers de configuration correspondant aux différents services à manipuler.
Ces fichiers de configuration, qui se trouve dans /etc/init/
, permettent d'indiquer les conditions d'activation ou désactivation d'un service ou d'y insérer ses propres scripts.
Dans un terminal saisissez:
sudo cp -r /etc/init/ /etc/init.save$(date +%Y%m%d)
Pour désactiver définitivement un service de tous les runlevel, il suffit de renommer le fichier de configuration.
Néanmoins si vous souhaitez modifier l'état d'un service selon certaines conditions, vous devrez modifier le fichier /etc/init/NomService.conf.
Exemples
: Je n'ai pas testé
sudo mv /etc/init/tty6.conf /etc/init/tty6.conf.noexec
Pour réactiver le service, il faudra faire la manipulation inverse:
sudo mv /etc/init/tty6.conf.noexec /etc/init/tty6.conf
- Si vous souhaitez ne jamais lancer gdm, plutôt que de renommer le fichier comme indiqué plus avant, il faudra modifier le fichier /etc/init/gdm.conf pour ajouter
never
à la lignestart on (
comme ceci:
start on (never and filesystem and started hal and tty-device-added KERNEL=tty7 and (graphics-device-added or stopped udevtrigger)) stop on runlevel [016] ...
Vous pouvez constater que gdm dépend également d'autres évènements (fichiers système montés, hal démarré…).
- Si vous souhaitez pouvoir lancer gdm uniquement après vous être connecté dans une console, modifiez le fichier /etc/init/gdm.conf comme ceci:
start on (runlevel [3] and filesystem and started hal and tty-device-added KERNEL=tty7 and (graphics-device-added or stopped udevtrigger)) stop on runlevel [0126] ...
Logiciels
Vous trouverez sur la page « Services » une liste non exhaustive de logiciels permettant la gestion des scripts Upstart.