Systemd membawa konsep unit systemd di Linux. Untuk e.g., unit perkhidmatan, unit sasaran, unit pemasangan dll. adalah jenis unit dengan peluasan fail sebagai .perkhidmatan, .sasaran, .mount masing-masing. Fail konfigurasi yang mewakili unit-unit ini disimpan di dalam direktori: / usr / lib / systemd / system /, / run / systemd / system /, / etc / systemd / system /
Versi sebelumnya Red Hat Enterprise Linux (RHEL) menggunakan skrip init. Skrip ini ditulis dalam BASH dan terletak di direktori "/ etc / rc.d / init.d / ”. Ini adalah skrip yang digunakan untuk mengawal perkhidmatan dan daemon. Kemudian di RHEL 7, unit perkhidmatan diperkenalkan untuk menggantikan skrip init. Fedora, yang merupakan OS hulu Red Hat Enterprise Linux, telah mulai menggunakan systemd dari Fedora versi 15.
Unit perkhidmatan mempunyai .sambungan fail perkhidmatan dan mempunyai peranan yang serupa dengan skrip init. "Systemd" menggunakan utiliti "systemctl" untuk mengurus perkhidmatan sistem. Ia boleh digunakan untuk melihat, memulakan, menghentikan, memulakan semula, mengaktifkan atau mematikan perkhidmatan ini.
Kelebihan Sistem Systemd Over Init
- Dengan systemd, kita dapat mengutamakan perkhidmatan yang diperlukan berbanding perkhidmatan yang kurang penting.
- Kumpulan digunakan oleh systemd untuk mengawasi proses dan mengawal pelaksanaannya.persekitaran.
- Systemd masih menyokong proses init lama dan mempunyai lebih banyak kawalan.
- Systemd mampu menangani pengubahsuaian konfigurasi sistem yang dinamik.
Apa Yang Akan Kami Lindungi?
Dalam panduan ini, kita akan belajar mengenai menguruskan proses systemd. Kami akan melihat bagaimana mengaktifkan dan mematikan perkhidmatan permulaan semasa boot dan bagaimana melakukan operasi perkhidmatan seperti memulakan, berhenti, mulakan semula, dll. Kami telah melakukan latihan di bawah di stesen kerja Fedora 30, yang paling sesuai untuk OS Linux yang lain.
Senaraikan Perkhidmatan Permulaan di Boot di Fedora Linux
Kaedah SysV lama menggunakan perkhidmatan dan chkconfig arahan untuk menguruskan perkhidmatan. Perintah ini kini diganti dengan perintah systemd seperti systemctl. Mari kita lihat beberapa operasi "systemctl" pada pelbagai perkhidmatan di Linux.
1. Untuk menyenaraikan semua perkhidmatan yang berjalan di sistem anda, bersama dengan keadaannya (diaktifkan atau dilumpuhkan), gunakan arahan di bawah:
$ sudo systemctl list-unit-files - type = service
Perkhidmatan boleh mempunyai tiga keadaan: 1) diaktifkan 2) dilumpuhkan 3) statik
Perkhidmatan yang diaktifkan mempunyai symlink di .mahu direktori, sedangkan perkhidmatan yang kurang upaya tidak mempunyai satu. Perkhidmatan statik tidak mempunyai bahagian pemasangan dalam skrip init yang sesuai. Jadi, ia tidak boleh diaktifkan atau dilumpuhkan.
Untuk mendapatkan lebih banyak maklumat mengenai perkhidmatan, arahan di bawah harus digunakan.
$ sudo systemctl -at perkhidmatan
Ringkasan nama lajur di atas:
UNIT - nama unit systemd (di sini nama perkhidmatan).
LOAD - Tentukan sama ada unit systemd dimuat dengan betul atau tidak.
AKTIF - Keadaan unit (perkhidmatan di sini).
SUB - Sub-keadaan pengaktifan unit.
PENERANGAN - Maklumat ringkas mengenai unit.
Kami juga boleh menggunakan arahan berikut:
$ sudo ls / lib / systemd / system / *.perkhidmatanatau
$ sudo / etc / systemd / system / *.perkhidmatan
The "/ Etc / inittab" kini digantikan oleh "/ Etc / systemd / system /" dalam sistemd. Direktori ini sekarang mengandungi symlink ke fail dalam direktori “/ Usr / lib / systemd / sistem". Skrip init diletakkan di "/ usr / lib / systemd / system". Perkhidmatan mesti dipetakan ke "/ Etc / systemd / system /" kerana memulakannya semasa boot sistem. Untuk tujuan ini, perintah systemctl digunakan di Fedora dan sistem Linux terkini yang lain.
2. Mari kita lihat contoh di bawah ini untuk mengaktifkan perkhidmatan httpd:
$ sudo systemctl mengaktifkan httpd.perkhidmatan
Kami juga boleh menggunakan perintah di bawah ini untuk menyaring semua perkhidmatan yang diaktifkan:
$ sudo systemctl list-unit-files | grep didayakan
atau gunakan arahan:
$ sudo systemctl | grep berjalan
3. Untuk menyenaraikan semua perkhidmatan yang aktif (berjalan), gunakan arahan:
4. Untuk melihat perkhidmatan mana yang diaktifkan untuk memulai secara automatik pada sistem boot, kami juga dapat menggunakan perintah berikut:
$ sudo systemctl list-unit-files --type = service --state = enabled --all
5. Begitu juga, kita boleh memeriksa perkhidmatan yang dilumpuhkan untuk memulakan boot dengan arahan:
$ sudo systemctl list-unit-files - type = service --state = dilumpuhkan --semua
6. Kami juga dapat melihat masa yang diperlukan setiap perkhidmatan pada permulaan:
$ sudo systemd-analysis menyalahkan
7. Untuk memeriksa sama ada perkhidmatan diaktifkan untuk memulakan secara automatik semasa boot, gunakan arahan:
$ sudo systemctl didayakan xxxLetakkan nama perkhidmatan sebagai ganti xxx. E.g., dalam kes perkhidmatan httpd, arahannya adalah:
$ sudo systemctl diaktifkan httpd.perkhidmatanatau
$ sudo systemctl diaktifkan httpd
8. Untuk memeriksa status perkhidmatan, gunakan arahan:
$ sudo systemctl status xxx.perkhidmatanContohnya, untuk memeriksa status perkhidmatan sshd:
$ sudo systemctl status sshd.perkhidmatan
9. Untuk memeriksa sama ada perkhidmatan sedang berjalan atau tidak, jalankan arahan di bawah:
$ sudo systemctl aktif xxx.perkhidmatanContohnya, untuk memeriksa status telnet:
$ sudo systemctl adalah telnet aktif.perkhidmatan
10. Untuk memulakan perkhidmatan mati atau tidak aktif, gunakan arahan:
$ sudo systemctl mulakan xxx.perkhidmatanContohnya, untuk memulakan perkhidmatan sshd:
$ sudo systemctl mulakan sshd
11. Untuk melumpuhkan perkhidmatan semasa boot sistem
Contohnya, untuk melumpuhkan perkhidmatan httpd:
$ sudo systemctl lumpuhkan httpd.perkhidmatanatau
$ sudo systemctl lumpuhkan httpd
12. Untuk memulakan semula perkhidmatan yang sedang berjalan
$ sudo systemctl mulakan semula xxx.perkhidmatanUntuk memulakan semula perkhidmatan sshd, gunakan arahan:
$ sudo systemctl mulakan semula sshdSekiranya perkhidmatan belum berjalan, perkhidmatan akan dimulakan.
13. Untuk memuatkan semula perkhidmatan yang sedang berjalan
$ sudo systemctl tambah nilai xxx.perkhidmatanContohnya, muatkan semula perkhidmatan httpd dengan:
$ sudo systemctl muat semula httpd.perkhidmatan
Perintah ini memuat semula konfigurasi perkhidmatan tertentu. Untuk memuat semula fail konfigurasi unit systemd, kami memerlukan perintah:
$ sudo systemctl daemon-reload14. Untuk menyenaraikan semua kebergantungan perkhidmatan:
$ sudo systemctl senarai-kebergantungan xxx.perkhidmatanSekiranya perkhidmatan httpd, arahannya adalah:
$ sudo systemctl list-dependencies httpd.perkhidmatan
Kesimpulannya
Dalam panduan ini, kami telah melihat pelbagai cara mengurus perkhidmatan dengan utiliti systemd seperti mengaktifkan perkhidmatan pada waktu boot, memulakan dan menghentikannya, dll. Sekiranya anda terbiasa dengan perintah perkhidmatan Sysvinit lama, anda harus beralih ke systemd kerana ia mempunyai lebih banyak ciri dan ini adalah sistem init lalai dalam versi Fedora, RHEL, dan sebilangan besar pengedaran Linux utama yang lain.