Je suis sur Ubuntu 15.04 et connecté en tant que root, mais quand je lance
ps -ef | grep cron | grep -v grep
pour m'assurer que le démon cron fonctionne, je vois le -f
, ce qui signifie qu'il s'exécute au premier plan et non pas comme un démon. Je n'ai rien changé à cron depuis la mise en place (sur DigitalOcean, à partir de leur image stock 15.04). Pourquoi ne fonctionnerait-il pas en tant que démon?
(Et oui, je sais que je devrais utiliser systemd
à la place. C'était censé être une solution rapide et sale - car cron est si simple et fiable, right !? - jusqu'à ce que je puisse obtenir mon * .service
fichiers débogués et fonctionnant.)
Je vois le
-f
, ce qui signifie qu'il s'exécute au premier plan et non pas comme un démon.
Non. Cela signifie qu'il n'a pas fait une petite danse inutile à la fourche et à la sortie quand il a commencé. Ces petites danses sont des tentatives (vaines) pour démoniser des programmes, en supposant que l'on démarre dæmons en se connectant à une session interactive et en exécutant les programmes à partir du Shell. Cela ne fonctionne pas vraiment de manière fiable et sécurisée, et est la source d'histoires de guerre au fil des ans de personnes qui ont tenté de démarrer des démons de cette façon et ont été désagréablement surpris.
cron
est déjà démonifié à force d'être exécuté sous un gestionnaire de services. Il n'a rien à faire du tout pour devenir un démon. Et cela va d'inutile à activement préjudiciable au bon fonctionnement du système. Donc, la convention - grâce à un quart de siècle de gens qui veulent ce genre de chose pour exécuter dæmons sous daemontools, runit, le SRC d'IBM, etc. - est d'utiliser toutes les options de ligne de commande pour simplement désactiver ces petites danses. Une bonne gestion des services n'en a pas besoin.
cron
exécuter le script . Une collection de scripts d'exécution.Étant donné qu'il est exécuté par systemd
, il n'est pas nécessaire qu'il se fourche en arrière-plan car il n'est pas appelé par un script Shell qui attend sa sortie (après s'être bifurqué en arrière-plan).