Uso xinetd
e funziona per i miei scopi. Tuttavia, di recente ho scoperto che systemd ha qualcosa integrato chiamato "attivazione socket".
Questi due sembrano molto simili, ma systemd è "ufficiale" e sembra la scelta migliore.
Comunque prima di usarlo, sono davvero gli stessi? Ci sono differenze di cui dovrei essere a conoscenza?
Ad esempio, voglio avviare alcuni servizi dockerizzati solo quando vengono richiesti per la prima volta:il mio primo pensiero sarebbe quello di utilizzare xinetd. Ma l'attivazione del socket è migliore/più veloce/più stabile/qualunque cosa?
Risposta accettata:
Non credo che l'attivazione del socket systemd sia significativamente migliore di xinetd
attivazione, se considerata isolatamente; anche quest'ultimo è stabile ed è in circolazione da più tempo. L'attivazione del socket è davvero interessante per il disaccoppiamento dei servizi:consente di avviare i servizi in parallelo, anche se devono comunicare, e consente di riavviare i servizi in modo indipendente.
Se hai un servizio che supporta xinetd
-style activation, può essere utilizzato con l'attivazione del socket:a .socket
descrizione con Accept=true
si comporterà allo stesso modo di xinetd
. Avrai anche bisogno di un .service
file per descrivere il servizio. Tutti i vantaggi dell'attivazione del socket systemd richiedono il supporto nel demone che fornisce il servizio. Vedi il post del blog sull'argomento.
Il mio consiglio tende ad essere "se non è rotto, non aggiustarlo", ma se vuoi convertire un xinetd
il servizio basato su systemd è certamente fattibile.