Upstart est un système d'initialisation basé sur les événements utilisé dans certaines distributions upstart linux pour gérer les services et les tâches pendant le démarrage et lorsque le système est en cours d'exécution. Il fonctionne via un système de jobs (tâches) et d'événements. Bien que retracer l'origine de chaque événement puisse être complexe, nécessitant souvent d'explorer les configurations des jobs dans /etc/init, vous aurez plus couramment besoin de gérer ces jobs directement depuis la ligne de commande. L'utilitaire initctl fournit une suite de commandes à cet effet.
Visualiser l'état des Jobs
Pour voir une liste de tous les jobs Upstart connus et leurs états actuels, utilisez la commande list.
initctl list
shutdown stop/waiting
console stop/waiting
...
La sortie affiche le nom du job, son objectif (goal) et son statut actuel. Dans l'exemple shutdown stop/waiting, le nom du job est shutdown, son objectif est stop et son statut actuel est waiting. Le statut et les objectifs du job changeront lorsque vous interagirez avec eux.
Pour vérifier le statut d'un job spécifique, utilisez la commande status.
initctl status networking
networking start/running
Contrôler Manuellement les Jobs
Bien que les fichiers de configuration des jobs dans /etc/init définissent comment les jobs démarrent, s'arrêtent et interagissent avec les événements, vous pouvez outrepasser manuellement ces actions en utilisant initctl. Ceci est utile pour le dépannage ou l'exécution de tâches administratives.
Pour démarrer manuellement un job :
sudo initctl start networking
Pour arrêter manuellement un job :
sudo initctl stop networking
Pour redémarrer manuellement un job, ce qui est un raccourci pratique pour l'arrêter puis le démarrer :
sudo initctl restart networking
Émettre des Événements Personnalisés
Les jobs Upstart sont déclenchés par des événements. Vous pouvez également "émettre" manuellement un événement, ce qui peut être utile pour déclencher des jobs personnalisés ou à des fins de test. Tout job configuré pour démarrer sur some_event serait déclenché par la commande suivante.
sudo initctl emit some_event