52 votes

Comment installer correctement un service upstart personnalisé ?

J'utilise upstart pour les services sur mes serveurs. Écrire un fichier conf et le placer dans /etc/init est assez facile, mais cela ne semble pas s'installer complètement. D'une part, le service --status-all ne mentionne pas mon nouveau service. J'ai vérifié et si je fais un lien dans /etc/init.d à /lib/init/ubstart-job il apparaîtra dans le statut. Mais en faisant cela manuellement, je pense que je ne m'y prends pas correctement et qu'il y a peut-être d'autres étapes de configuration qui ne sont pas effectuées.

Quelle est la bonne façon d'installer un service upstart pour qu'il soit correctement enregistré dans tous les outils traitant des services ?

46voto

tombert Points 831

Lorsque vous copiez initialement un nouveau fichier conf dans le dossier /etc/init, vous devez appeler :

initctl reload-configuration

Votre start-up devrait alors être correctement enregistrée.

18voto

Calvin Fabre Points 189

Consultez le manuel d'entretien :

service --status-all lance tous les scripts init scripts, dans l'ordre alphabétique, avec la commande status. Cette option n'appelle la commande status que pour les travaux sysvinit, Les jobs upstart peuvent être interrogés de la même manière avec initctl list.

(soulignement ajouté)

C'est pourquoi le fait de l'ajouter à /etc/init.d (où se trouvent les tâches de sysvinit) a permis d'obtenir ce résultat. Donc : essayez d'exécuter initctl list à la place :) .

14voto

FD_ Points 261

Pour les services SysV

Veillez à suivre les étapes suivantes lors de l'ajout/création d'un nouveau service dans Ubuntu.

  1. Créer le fichier de service dans /etc/init.d/<service name>
  2. chmod 700 /etc/init.d/<service name>
  3. update-rc.d <service name> defaults
  4. update-rc.d <service name> enable

Maintenant, voyez votre service dans

service --status-all

1voto

Dan Breen Points 4381

J'ai découvert qu'une erreur dans le fichier .conf peut empêcher initctl de reconnaître le travail. setuid dans la version 1.3 ou antérieure d'Upstart.

1voto

Jeff Parsons Points 11

Bien que la réponse choisie actuellement soit correcte pour ajouter le nouveau service à upstart, elle n'est pas particulièrement utile pour savoir pourquoi une configuration dans /etc/init/ n'arrive pas à se charger -- la pièce manquante est d'utiliser init-checkconf d'abord pour s'assurer que votre configuration est valide, puis d'utiliser reload-configuration :

####Test the new config - resolving any issues before continuing:
ERROR: File /etc/init/test.conf: syntax invalid:
test.conf:35: Unterminated quoted string

####then fix and recheck:
# init-checkconf /etc/init/test.conf
File /etc/init/test.conf: syntax ok

####then reload:
# initctl reload-configuration

#### and start:
# start test

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X