Je développe une application Nodejs avec laquelle l'utilisateur interagit via HTTP sur localhost. Il n'y a pratiquement pas de paramètres et le démon n'a pratiquement pas de dépendances et il doit juste être opérationnel au moment de la connexion.
Je voudrais suivre les idiomes sur chaque plate-forme pour les scripts de démarrage, et cela signifie Upstart sur Ubuntu et systemd sur Fedora.
J'ai trouvé ces ressources:
Je recherche principalement une sorte d'API comme référence, ainsi qu'un format de base à suivre.
Je commencerais par les pages de manuel de Systemd . Ils représentent une ressource complète du système et des services.
Il y a aussi les FAQ freedesktop Systemd .
L'exemple suivant est inspiré de ce lien, qui en fait ne mentionne pas toutes les étapes et est répertorié juste pour créditer la source: http://patrakov.blogspot.com/2011/01/writing-systemd-service-files .html
Étape 1 : J'ai créé ce fichier (emplacement de la note) qui déclenche essentiellement un processus bash avec un argument étendu. Vous pouvez lancer votre propre commande qui peut être différente de bash.
[root@y500-Fedora ~]# cat /etc/systemd/system/foo.service
[Unit]
Description=foo
[Service]
ExecStart=/bin/bash -c "while true; do /bin/inotifywait -qq --event close_write /sys/class/backlight/acpi_video0/brightness; su myusername -c '/bin/xbacklight -display :0 -set $(cat /sys/class/backlight/acpi_video0/brightness)'; done"
[Install]
WantedBy=multi-user.target
Étape 2 :
Recharger systemd
:
systemctl daemon-reload
Démarrez le nouveau service:
systemctl enable foo
(de même, vous pouvez disable
it)
(facultatif) Étape 3 : il devrait démarrer automatiquement au prochain redémarrage en mode multi-utilisateur (niveau d'exécution 3) mais si vous voulez le démarrer immédiatement :
systemctl start foo
systemctl status foo # optional, just to verify
Mise à jour: Pour être complet, je dois ajouter que ubuntu bionic semble avoir une page de manuel très complète. RTFM ici
La documentation Redhat est une excellente source.