Je veux que le service systemd gère les fourches (mon fichier ne gère pas les fourches par lui-même. Je compte donc sur systemd pour gérer cela)
Mon fichier .service:
[Unit]
Description=swamp services management service
After=syslog.target
[Service]
Type=forking
ExecStart=/usr/bin/swamp
[Install]
WantedBy=multi-user.target
Question
Les spécifications sont-elles Type=forking
suffisantes pour ce que j'essaie de réaliser? Ou est-il similaire de s'attendre à forking dans upstart qui indique réellement à upstart (si je comprends bien, je ne suis pas sûr de le faire, je suis nouveau dans l'écriture de scripts) que mon service gérerait le forking / démonétisation.
oneshot
(un script court typique) ousimple
(un service de longue durée qui ne débouche pas + quitte).&
?Si vous voulez que systemd gère les fourches, vous devez utiliser par exemple
Type=simple
ouType=notify
. Ensuite, systemd fera le fork pour vous.Si vous pouvez modifier l'
swamp
exécutable,Type=notify
c'est la meilleure solution. L'exécutable devrait alors informer systemd quand il est correctement initialisé. Cela signifie qu'ilsystemctl start swamp
attendra que le marais s'initialise lorsqu'il est appelé à partir de la ligne de commande et qu'il imprime tout message d'erreur lors de l'initialisation sur la ligne de commande, ce qui est généralement le cas.Pour un exemple d'exécutable écrit pour utiliser Type = notify, consultez le shellscript suivant:
la source