GNU/Linux >> Linux Esercitazione >  >> Linux

attivazione del socket systemd rispetto a xinetd

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 attivazione, 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 sul blog sull'argomento.

Il mio consiglio tende ad essere "se non è rotto, non aggiustarlo", ma se vuoi convertire un xinetd servizio basato su systemd è certamente fattibile.


Puoi usare sia xinetd o systemd per l'attivazione del socket, entrambi funzioneranno. Personalmente trovo xinetd più facile da usare perché tutto è in un unico file, ma ho anche usato systemd perché è più flessibile, specialmente con l'ascolto su più indirizzi e il socket forwarding ai socket UNIX e non solo ai socket IP.

Qui come esempio ho usato per inoltrare la connessione TCP al socket del file MySQL:

/etc/systemd/system/mysql-proxy.service

[Unit]                                                  
Description=MySql Proxy Service
Requires=mysql-proxy.socket

[Service]
Environment=MYSQL_PROXY_TARGET=/var/run/mysql/mysql.sock
EnvironmentFile=-/etc/sysconfig/mysql-proxy
ExecStart=/usr/lib/systemd/systemd-socket-proxyd ${MYSQL_PROXY_TARGET}

/etc/systemd/system/mysql-proxy.socket

[Unit]                                                  
Description=MySql Proxy Socket

[Socket]
ListenStream=192.168.1.1:3306
ListenStream=192.168.2.1:3306
NoDelay=true
FreeBind=true

[Install]
WantedBy=sockets.target

L'inoltro tradizionale richiede Accept=true , systemd i processi consapevoli dovrebbero gestire più connessioni in un processo o eseguire il fork di processi aggiuntivi come richiesto.


Linux
  1. Aggiunta di un nuovo servizio a Linux systemd

  2. Scrivere file di servizio Systemd di base?

  3. Linux – Posizione dello script Fsck?

  4. Il servizio Systemd non avvia Nodejs?

  5. Come reindirizzare l'output del servizio systemd su un file

Comandi Systemctl per gestire il servizio Systemd

Utilizzo delle funzionalità di systemd per proteggere i servizi

Gestire cgroup con systemd

reindirizzare i log del servizio systemd su file

Disattivare un servizio systemd dopo il periodo di inattività

Come inviare un'e-mail se un servizio systemd viene riavviato?