Existe-t-il une commande Unix qui surveille des processus arbitraires et relance ces processus s’ils sont détruits par le système d’exploitation? Par exemple, j’ai un démon d’arrière-plan qui s’exécute périodiquement, mais parfois il est détruit par le système d’exploitation. Je voudrais soit revivre soit ce processus ou quelque chose de similaire.
Compte tenu de la nature vague de cette question et de ce que le PO a essayé, voici une réponse. Un Ubuntu récent (supposé de la balise), OP utilise un système systemd
, et dans ce type de système, on pourrait écrire un script de service systemd
qui redémarrerait le démon s’il s’arrêtait;
~]# cat /usr/lib/systemd/system/myawesome.service [Unit] Description=My Awesome Service After=systemd-logind.service [Service] Type=notify ExecStart=/path/to/my/awesome/daemon KillMode=process Restart=always [Install] WantedBy=multi-user.target
Puis démarrez ce service,
~]# systemctl start myawesome.service ~]# systemctl enable myawesome.service # To sustain after a reboot
Pour en savoir plus sur les fichiers d’unité de service systemd, suivez ces liens:
https://www.freedesktop.org/software/systemd/man/systemd.service.html https://www.freedesktop.org/software/systemd/man/systemd.unit.html