Systemd membawa konsep unit systemd di Linux. untuk e.g., unit layanan, unit target, unit pemasangan dll. adalah tipe unit dengan ekstensi file sebagai .layanan, .target, .pasang masing-masing. File konfigurasi yang mewakili unit-unit ini disimpan di dalam direktori: /usr/lib/systemd/system/, /run/systemd/system/, /etc/systemd/system/
Versi sebelumnya dari Red Hat Enterprise Linux (RHEL) menggunakan skrip init. Script ini ditulis dalam BASH dan terletak di direktori “/etc/rc.d/init.d/”. Ini adalah skrip yang digunakan untuk mengontrol layanan dan daemon. Kemudian di RHEL 7, unit layanan diperkenalkan untuk menggantikan skrip init. Fedora, yang merupakan OS hulu dari Red Hat Enterprise Linux, telah mulai menggunakan systemd dari Fedora versi 15.
Unit layanan memiliki .ekstensi file layanan dan memiliki peran yang sama dengan skrip init. "Systemd" menggunakan utilitas "systemctl" untuk mengelola layanan sistem. Ini dapat digunakan untuk melihat, memulai, menghentikan, memulai kembali, mengaktifkan atau menonaktifkan layanan ini.
Keuntungan dari Systemd Over Init System
- Dengan systemd, kami dapat memprioritaskan layanan yang diperlukan daripada layanan yang kurang signifikan.
- Cgroup digunakan oleh systemd untuk melacak proses dan mengontrol eksekusi.lingkungan Hidup.
- Systemd masih mendukung proses init lama dan memiliki lebih banyak kontrol.
- Systemd mampu menangani modifikasi konfigurasi sistem dinamis.
Apa yang Akan Kami Cover??
Dalam panduan ini, kita akan belajar tentang mengelola proses systemd. Kami akan melihat cara mengaktifkan dan menonaktifkan layanan startup saat boot dan bagaimana melakukan operasi layanan seperti start, stop, restart, dll. Kami telah melakukan latihan di bawah ini pada workstation Fedora 30, yang akan paling berlaku untuk OS Linux lainnya.
Daftar Layanan Startup saat Boot di Fedora Linux
Metode SysV lama menggunakan layanan dan chkconfig perintah untuk mengelola layanan. Perintah-perintah ini sekarang diganti dengan perintah systemd seperti sistemctl. Mari kita lihat beberapa operasi "systemctl" pada berbagai layanan di Linux.
1. Untuk membuat daftar semua layanan yang berjalan di sistem Anda, beserta statusnya (diaktifkan atau dinonaktifkan), gunakan perintah di bawah ini:
$ sudo systemctl list-unit-files --type=service
Layanan dapat memiliki tiga status: 1) diaktifkan 2) dinonaktifkan 3) statis
Layanan yang diaktifkan memiliki symlink di a .menginginkan direktori, sedangkan layanan yang dinonaktifkan tidak memilikinya. Layanan statis tidak memiliki bagian instal di skrip init yang sesuai. Jadi, itu tidak dapat diaktifkan atau dinonaktifkan.
Untuk mendapatkan detail lebih lanjut dari layanan, perintah di bawah ini harus digunakan.
$ sudo systemctl -at service
Ringkasan nama kolom di atas:
UNIT - nama unit systemd (di sini nama layanan).
LOAD - Tentukan apakah unit systemd dimuat dengan benar atau tidak.
AKTIF - Status unit (layanan di sini).
SUB - Sub-status dari aktivasi unit.
DESKRIPSI - Info singkat unit.
Kita juga dapat menggunakan perintah berikut:
$ sudo ls /lib/systemd/system/*.layananatau
$ sudo /etc/systemd/system/*.layanan
Itu “/etc/inittab” sekarang digantikan oleh “/etc/systemd/system/” di systemd. Direktori ini sekarang berisi symlink ke file di direktori “/usr/lib/systemd/system”. Skrip init ditempatkan di “/usr/lib/systemd/system”. Sebuah layanan harus dipetakan ke “/etc/systemd/system/” untuk memulainya saat boot sistem. Untuk tujuan ini, perintah systemctl digunakan di Fedora dan sistem Linux terbaru lainnya.
2. Mari kita lihat contoh di bawah ini untuk mengaktifkan layanan httpd:
$ sudo systemctl aktifkan httpd.layanan
Juga, kita dapat menggunakan perintah di bawah ini untuk memfilter semua layanan yang diaktifkan:
$ sudo systemctl list-unit-files | grep diaktifkan
atau gunakan perintah:
$ sudo systemctl | grep lari
3. Untuk membuat daftar semua layanan yang aktif (berjalan), gunakan perintah:
4. Untuk melihat layanan mana yang diaktifkan untuk memulai secara otomatis pada boot sistem, kita juga dapat menggunakan perintah berikut:
$ sudo systemctl list-unit-files --type=service --state=enabled --all
5. Demikian pula, kami dapat memeriksa layanan yang dinonaktifkan untuk memulai saat boot dengan perintah:
$ sudo systemctl list-unit-files --type=service --state=disabled --all
6. Kami juga dapat melihat waktu yang digunakan setiap layanan saat startup:
$ sudo systemd-analyze menyalahkan
7. Untuk memeriksa apakah layanan diaktifkan untuk autostart saat boot, gunakan perintah:
$ sudo systemctl diaktifkan xxxLetakkan nama layanan di tempat xxx. E.g., dalam hal layanan httpd, perintahnya adalah:
$ sudo systemctl diaktifkan httpd.layananatau
$ sudo systemctl diaktifkan httpd
8. Untuk memeriksa status layanan, gunakan perintah:
$ sudo systemctl status xxx.layananMisalnya, untuk memeriksa status layanan sshd:
$ sudo systemctl status sshd.layanan
9. Untuk memeriksa apakah suatu layanan berjalan atau tidak, jalankan saja perintah di bawah ini:
$ sudo systemctl aktif xxx.layananMisalnya, untuk memeriksa status telnet:
$ sudo systemctl telnet aktif.layanan
10. Untuk memulai layanan mati atau tidak aktif, gunakan perintah:
$ sudo systemctl start xxx.layananMisalnya, untuk memulai layanan sshd:
$ sudo systemctl start sshd
11. Untuk menonaktifkan layanan saat boot sistem
Misalnya, untuk menonaktifkan layanan httpd:
$ sudo systemctl nonaktifkan httpd.layananatau
$ sudo systemctl nonaktifkan httpd
12. Untuk memulai kembali layanan yang sedang berjalan
$ sudo systemctl restart xxx.layananUntuk me-restart layanan sshd, gunakan perintah:
$ sudo systemctl restart sshdJika layanan belum berjalan, itu akan dimulai.
13. Untuk memuat ulang layanan yang sedang berjalan
$ sudo systemctl reload xxx.layananMisalnya, muat ulang layanan httpd dengan:
$ sudo systemctl reload httpd.layanan
Perintah ini memuat ulang konfigurasi layanan tertentu. Untuk memuat ulang file konfigurasi unit systemd, kita memerlukan perintah:
$ sudo systemctl daemon-reload14. Untuk membuat daftar semua dependensi layanan:
$ sudo systemctl list-dependencies xxx.layananDalam hal layanan httpd, perintahnya adalah:
$ sudo systemctl list-dependencies httpd.layanan
Kesimpulan
Dalam panduan ini, kami telah melihat berbagai cara mengelola layanan dengan utilitas systemd seperti mengaktifkan layanan saat boot, memulai dan menghentikannya, dll. Jika Anda terbiasa dengan perintah layanan Sysvinit lama, Anda harus beralih ke systemd karena memiliki lebih banyak fitur dan ini adalah sistem init default di versi Fedora, RHEL, dan sebagian besar distribusi Linux utama lainnya yang lebih baru.