Un moyen correct d'installer un service personnalisé

49

J'utilise les services de démarrage sur mes serveurs. Écrire un fichier conf et le placer dans /etc/init est assez facile, mais cela ne semble pas complètement installer. D'une part, le service --status-all ne répertorie pas mon nouveau service. J'ai vérifié et si je crée un lien dans /etc/init.d à /lib/init/ubstart-job , cela apparaîtra dans le statut. Mais faire cela manuellement me fait penser que je ne le fais pas correctement, et il se peut que d’autres étapes de configuration ne soient pas effectuées.

Quelle est la manière correcte d’installer un service de mise à jour tel qu’il soit correctement enregistré dans tous les outils traitant des services?

    
posée edA-qa mort-ora-y 24.05.2013 - 08:48
la source

5 réponses

42

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

initctl reload-configuration

Par conséquent, votre démarrage doit être correctement enregistré.

    
réponse donnée tombert 31.05.2013 - 23:35
la source
18

Consultez le manuel de maintenance:

  

service --status-all exécute tous les scripts d'initialisation, dans l'ordre alphabétique, avec la commande status. Cette option appelle uniquement l'état pour les travaux sysvinit, les travaux de démarrage peuvent être interrogés de la même manière avec la liste initctl.

(soulignement ajouté)

C'est pourquoi l'ajouter à /etc/init.d (où sont situés les travaux sysvinit) a fait que cela fonctionne. Donc: essayez d’exécuter initctl list à la place :).

    
réponse donnée Kyle 24.05.2013 - 17:40
la source
10

Pour les services SysV

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

  1. Créez 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-vous le service dans

service --status-all
    
réponse donnée Suyash Jain 12.09.2014 - 18:16
la source
0

J'ai constaté qu'une erreur dans le fichier .conf peut rendre le travail non reconnaissable à initctl. par exemple, avoir une ligne setuid dans la version 1.3 ou antérieure de Upstart.

    
réponse donnée jcomeau_ictx 09.03.2015 - 22:51
la source
0

Bien que la réponse choisie soit correcte pour que le nouveau service soit ajouté au démarrage, il n'est pas particulièrement utile de savoir POURQUOI une configuration dans / etc / init / échoue à charger - la pièce manquante utilise d'abord init-checkconf pour vous assurer que votre configuration est valide, puis en utilisant 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
    
réponse donnée Jeff Parsons 20.03.2018 - 00:15
la source

Lire d'autres questions sur les étiquettes