GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya belajar untuk berhenti khawatir dan mencintai systemd

Aku sedang mencoba, Ringo. Saya berusaha sangat keras untuk menjadi gembala – Jules Winnfield [Pulp Fiction, 1994]

Selama bertahun-tahun telah terjadi perang komunitas di pos, utas, dan tweet, di mana systemd didiskreditkan dan dikritik, tetapi apakah itu benar-benar buruk? Saya tidak begitu tahu, tetapi sebagai sysadmin, salah satu tugas utama saya adalah mengelola dan memantau layanan di setiap server saya, dan dalam beberapa tahun terakhir sebagian besar distro telah menerapkan systemd ini. sebagai standar.

Sysadmin menemukan kembali diri kita sendiri terus-menerus, dan kami selalu meneliti dan belajar. Jadi, mari kita praktikkan systemd dan mengembangkan keterampilan baru. Berlawanan dengan init tradisional , di mana proses booting berurutan, systemd menggunakan konsep boot paralelisasi dengan membuat soket untuk memulai setiap layanan yang membutuhkannya. Pada gilirannya, perilaku ini memungkinkannya berinteraksi dengan daemon lain dengan mengabstraksi soket tersebut dan menetapkan prosesnya ke grup kontrol. Proses tersebut kemudian dilacak menggunakan grup kontrol ini, bukan dengan ID proses (PID), yang diterjemahkan menjadi proses booting yang lebih sederhana dan lebih sedikit waktu untuk memulai.

Di systemd , layanan didefinisikan dalam file unit dengan daemon dan arahan perilaku mereka. /etc/systemd/system/ direktori dicadangkan untuk file unit yang Anda buat atau sesuaikan.

Untuk membuat layanan, Anda harus membuatnya dengan formulir:<unit_name>.<service> .

File unit ini memulai skrip yang ditunjukkan dalam ExecStart opsi dengan <user> atur dengan User . Jika skrip gagal atau berhenti, upaya akan dilakukan untuk memulai ulang seperti yang ditunjukkan dalam Restart pilihan. StandardOutput dan StandardError opsi memastikan bahwa standar skrip dan keluaran kesalahan akan ditulis ke systemd log.

Dalam pengalaman terakhir saya, sebagai contoh kehidupan nyata, sehari-hari, saya memiliki server dengan layanan web kecil yang berjalan di dalam wadah (ya, saya tahu, tetapi Anda tahu pelanggannya). Untuk mengoptimalkan dan mengotomatisasi layanan, saya membuat systemd unit file untuk wadah Podman untuk memungkinkan pengguna mengontrol siklus hidup wadah melalui systemctl .

Setelah menyalin file unit ke /etc/systemd/system/myhttpservice.service , muat ulang systemd konfigurasi manager dengan perintah:systemctl daemon-reload . Kemudian, Anda dapat menangani penampung sebagai systemd -layanan terkelola:

# systemctl start myhttpservice.service ← to start the container
# systemctl status myhttpservice.service ← to check the container service status
# systemctl start myhttpservice.service ← to stop the container

Fungsionalitas penampung tidak terpengaruh saat dikelola oleh systemd . Anda bahkan dapat menggunakan perintah Podman untuk memantau kesehatan container:

[root@server ~]# podman healthcheck run myhttpservice
healthy

Jadi jangan khawatir. Systemd dapat membantu Anda, percaya saja. Jika Anda ingin tahu lebih banyak:

  • Dasar-dasar sistem RHEL7
  • Mengungkap sistemd
  • Lembar Cheat systemd untuk Red Hat Enterprise Linux 7
  • Pengantar Podman
  • Memantau vitalitas dan ketersediaan container dengan Podman
  • Bagaimana cara mengontrol wadah podman melalui systemd?

Saya harap informasi ini membantu Anda.


Linux
  1. Mulai, Hentikan, dan Mulai Ulang layanan di server systemd RHEL 7 Linux

  2. Cara memulai layanan systemd setelah pengguna masuk dan menghentikannya sebelum pengguna keluar

  3. Bagaimana cara mengirim email jika layanan systemd di-restart?

  1. Cara membuat layanan Systemd di Linux

  2. Bagaimana Cara Menulis Script Startup Untuk Systemd?

  3. Bagaimana Cara Mengemas Layanan Systemd?

  1. Bagaimana Cara Menghentikan dan Menonaktifkan Layanan ClamAV dari CentOS?

  2. Cara Memulai, Menghentikan, dan Memulai Ulang Layanan Zimbra

  3. Cara mengarahkan output dari layanan systemd ke file