Domanda

Mi chiedo sempre chi dovrebbe farlo. In Ruby , abbiamo Daemons che consente agli script Ruby di demonizzare se stessi. E poi, guardando God (uno strumento di monitoraggio del processo, simile a monit ), vedo che Dio può demonizzare i processi.

Qualche risposta definitiva là fuori?

È stato utile?

Soluzione

Probabilmente non puoi ottenere una risposta definitiva, dato che generalmente finiamo con entrambi: il processo ha la capacità di demonizzare se stesso e il monitor di processo ha la capacità di demonizzare i suoi figli.

Personalmente preferisco che il monitor di processo o lo script lo faccia, per alcuni motivi:
1. se il monitor di processo desidera seguire da vicino i propri figli per riavviarli se muoiono, può scegliere di non demonizzarli. Un SIGCHLD verrà consegnato al monitor quando esce uno dei suoi processi figlio. Nei sistemi embedded lo facciamo molto.
2. In genere durante la demonizzazione, si imposta anche l'euid e l'egid. Preferisco non codificare in ogni processo figlio una conoscenza della politica a livello di sistema come gli uidi da usare.
3. Permette il riutilizzo della stessa applicazione di uno strumento da riga di comando o di un demone (ammetto liberamente che ciò accade raramente in pratica).

Altri suggerimenti

Direi che è meglio per la tua sceneggiatura farlo. Non conosco il tuo strumento di monitoraggio dei processi lì, ma penso che gli utenti potrebbero potenzialmente utilizzare uno strumento alternativo, il che significa che avere lo script sarebbe preferibile.

Se riesci a immaginare lo script eseguito in modo non daemon, aggiungerei un'opzione allo script per abilitare o disabilitare la demonizzazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top