GNU/Linux >> Belajar Linux >  >> Linux

aktivasi soket systemd vs xinetd

Menurut saya, aktivasi soket sistem jauh lebih baik daripada xinetd aktivasi, jika dianggap terpisah; yang terakhir juga stabil dan sudah ada lebih lama. Aktivasi soket sangat menarik untuk decoupling layanan:ini memungkinkan layanan dimulai secara paralel, bahkan jika mereka perlu berkomunikasi, dan memungkinkan layanan dimulai ulang secara mandiri.

Jika Anda memiliki layanan yang mendukung xinetd -style activation, dapat digunakan dengan socket activation:a .socket deskripsi dengan Accept=true akan berperilaku dengan cara yang sama seperti xinetd . Anda juga memerlukan .service file untuk menjelaskan layanan. Manfaat penuh dari aktivasi soket sistem memerlukan dukungan daemon yang menyediakan layanan tersebut. Lihat entri blog tentang topik tersebut.

Saran saya cenderung “kalau tidak rusak, jangan diperbaiki”, tetapi jika Anda ingin mengonversi xinetd -layanan berbasis ke systemd itu pasti layak.


Anda dapat menggunakan xinetd atau systemd untuk aktivasi soket, keduanya akan berfungsi. Saya pribadi menemukan xinetd lebih mudah digunakan karena semuanya dalam satu file, tetapi juga menggunakan systemd karena lebih fleksibel, terutama dengan mendengarkan pada banyak alamat dan penerusan soket ke soket UNIX dan tidak hanya ke soket IP.

Di sini sebagai contoh saya biasa meneruskan koneksi TCP ke soket 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

Penerusan tradisional memerlukan Accept=true , systemd proses sadar seharusnya menangani banyak koneksi dalam satu proses atau memotong proses tambahan sesuai kebutuhan.


Linux
  1. Cara membuat layanan Systemd di Linux

  2. Layanan Systemd Tidak Akan Memulai Nodejs?

  3. redirect log layanan systemd ke file

  1. Kelola startup menggunakan systemd

  2. Menambahkan layanan baru ke sistem Linuxd

  3. Menulis File Layanan Systemd Dasar?

  1. Linux – Lokasi Skrip Fsck?

  2. Ubuntu – “Aktivasi Soket” Systemd Vs Xinetd?

  3. Bagaimana Cara Mengemas Layanan Systemd?