GNU/Linux >> Znalost Linux >  >> Linux

aktivace soketu systemd vs xinetd

Nemyslím si, že aktivace systemd socketu je výrazně lepší než xinetd aktivace, pokud je posuzována izolovaně; druhý je také stabilní a existuje již déle. Aktivace soketu je opravdu zajímavá pro oddělení služeb:umožňuje paralelní spouštění služeb, i když potřebují komunikovat, a umožňuje nezávislé restartování služeb.

Pokud máte službu, která podporuje xinetd -style aktivace, lze ji použít s aktivací socketu:a .socket popis s Accept=true se bude chovat stejně jako xinetd . Budete také potřebovat .service soubor popisující službu. Plné výhody aktivace systemd socketu vyžadují podporu v démonovi poskytujícím službu. Viz blogový příspěvek na toto téma.

Moje rada bývá „pokud to není rozbité, neopravujte to“, ale pokud chcete převést xinetd služba založená na systemd je určitě proveditelná.


Můžete použít buď xinetd nebo systemd pro aktivaci zásuvky budou fungovat obě. Osobně shledávám xinetd snadnější použití, protože vše je v jednom souboru, ale také použili systemd protože je flexibilnější, zejména s nasloucháním na více adresách a předáváním soketů do soketů UNIX a nejen do soketů IP.

Zde jsem jako příklad použil k předání TCP spojení do soketu souboru 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

Tradiční přeposílání potřebuje Accept=true , systemd vědomé procesy by měly zpracovávat více připojení v jednom procesu nebo podle potřeby rozvětvovat další procesy.


Linux
  1. 10 praktických příkazů systemd:Reference

  2. Přidání nové služby do Linux systemd

  3. Psaní základních souborů Systemd Service?

  1. Linux – umístění skriptu Fsck?

  2. Ubuntu – Systemd „aktivace zásuvky“ vs Xinetd?

  3. Jak zabalit službu Systemd?

  1. Jak přesměrovat výstup služby systemd do souboru

  2. @reboot nefunguje v CRON

  3. Jak zastavit službu systemd