Layanan Systemd Mulai dan Berhenti
systemdadalah cara baru menjalankan layanan di Linux. systemd memiliki sysvinit yang digantikan . systemd membawa waktu boot yang lebih cepat ke Linux dan sekarang, cara standar untuk mengelola layanan Linux. Meskipun stabil, systemd masih berkembang.
systemd sebagai sistem init, digunakan untuk mengelola layanan dan daemon yang memerlukan perubahan status setelah kernel Linux di-boot. Dengan perubahan status dimulai, berhenti, memuat ulang, dan menyesuaikan status layanan diterapkan.
Pertama, mari kita periksa versi systemd yang saat ini berjalan di server kita.
[centos@localhost ~]$ systemctl --version
systemd 219
+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP
+GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN
[centos@localhost ~]$
Pada CentOS versi 7, sepenuhnya diperbarui pada saat penulisan ini systemd versi 219 adalah versi stabil saat ini.
Kami juga dapat menganalisis waktu boot server terakhir dengan analisis systemd
[centos@localhost ~]$ systemd-analyze
Startup finished in 1.580s (kernel) + 908ms (initrd) + 53.225s (userspace) = 55.713s
[centos@localhost ~]$
Ketika waktu boot sistem lebih lambat, kita dapat menggunakan perintah kesalahan systemd-analysis .
[centos@localhost ~]$ systemd-analyze blame
40.882s kdump.service
5.775s NetworkManager-wait-online.service
4.701s plymouth-quit-wait.service
3.586s postfix.service
3.121s systemd-udev-settle.service
2.649s tuned.service
1.848s libvirtd.service
1.437s network.service
875ms packagekit.service
855ms gdm.service
514ms firewalld.service
438ms rsyslog.service
436ms udisks2.service
398ms sshd.service
360ms boot.mount
336ms polkit.service
321ms accounts-daemon.service
Saat bekerja dengan systemd , penting untuk memahami konsep unit .UnitsApakah sumber daya systemd tahu bagaimana menafsirkannya. Unit dikategorikan menjadi 12 jenis sebagai berikut -
- .service
- .socket
- .device
- .mount
- .automount
- .swap
- .target
- .path
- .timer
- .snapshot
- .slice
- .scope
Untuk sebagian besar, kita akan bekerja dengan .service sebagai target unit. Disarankan untuk dilakukan penelitian lebih lanjut terhadap jenis lainnya. Karena hanya unit .service yang akan berlaku untuk memulai dan menghentikan layanan systemd .
Setiap unit didefinisikan dalam file yang terletak di -
/lib/systemd/system - file unit dasar
/etc/systemd/system - file unit yang dimodifikasi dimulai saat run-time
Kelola Layanan dengan systemctl
Untuk bekerja dengan systemd , kita harus terbiasa dengan perintah systemctl . Berikut ini adalah saklar baris perintah yang paling umum untuk systemctl .
Beralih | Tindakan |
---|---|
-t | Nilai yang dipisahkan koma untuk jenis unit seperti layanan atau soket |
-Sebuah | Menunjukkan semua unit yang dimuat |
--negara | Menampilkan semua unit dalam keadaan yang ditentukan, baik: memuat, sub, aktif, tidak aktif, dll .. |
-H | Menjalankan operasi dari jarak jauh. Tentukan nama Host atau host dan pengguna dipisahkan oleh @. |
Penggunaan systemctl dasar
systemctl [operation]
example: systemctl --state [servicename.service]
Untuk melihat sekilas semua layanan yang berjalan di kotak kami.
[root@localhost rdc]# systemctl -t service
UNIT LOAD ACTIVE SUB DESCRIPTION
abrt-ccpp.service loaded active exited Install ABRT coredump hook
abrt-oops.service loaded active running ABRT kernel log watcher
abrt-xorg.service loaded active running ABRT Xorg log watcher
abrtd.service loaded active running ABRT Automated Bug Reporting Tool
accounts-daemon.service loaded active running Accounts Service
alsa-state.service loaded active running Manage Sound Card State (restore and store)
atd.service loaded active running Job spooling tools
auditd.service loaded active running Security Auditing Service
avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack
blk-availability.service loaded active exited Availability of block devices
bluetooth.service loaded active running Bluetooth service
chronyd.service loaded active running NTP client/server
Menghentikan Layanan
Mari kita hentikan dulu layanan bluetoothnya.
[root@localhost]# systemctl stop bluetooth
[root@localhost]# systemctl --all -t service | grep bluetooth
bluetooth.service loaded inactive dead Bluetooth service
[root@localhost]#
Seperti yang bisa kita lihat, layanan bluetooth sekarang tidak aktif.
Untuk memulai layanan bluetooth lagi.
[root@localhost]# systemctl start bluetooth
[root@localhost]# systemctl --all -t service | grep bluetooth
bluetooth.service loaded active running Bluetooth service
[root@localhost]#
Note- Kami tidak menentukan bluetooth.service, karena .service sudah tersirat. Ini adalah praktik yang baik untuk memikirkan tipe unit yang menambahkan layanan yang kita hadapi. Jadi, mulai sekarang, kami akan menggunakan ekstensi .service untuk mengklarifikasi bahwa kami sedang mengerjakan operasi unit layanan.
Tindakan utama yang dapat dilakukan pada layanan adalah -
Mulailah | Memulai layanan |
Berhenti | Menghentikan layanan |
Muat ulang | Memuat ulang konfigurasi aktif layanan tanpa menghentikannya (seperti kill -HUP di sistem v init) |
Mengulang kembali | Memulai, lalu menghentikan layanan |
Memungkinkan | Memulai layanan pada saat boot |
Nonaktifkan | Menghentikan layanan dari mulai secara otomatis pada waktu proses |
Tindakan di atas terutama digunakan dalam skenario berikut -
Mulailah | Untuk memunculkan layanan yang telah dimasukkan ke dalam status berhenti. |
Berhenti | Untuk mematikan sementara layanan (misalnya ketika layanan harus dihentikan untuk mengakses file yang dikunci oleh layanan, seperti ketika meningkatkan layanan) |
Muat ulang | Ketika file konfigurasi telah diedit dan kami ingin menerapkan perubahan baru tanpa menghentikan layanan. |
Mengulang kembali | Dalam skenario yang sama seperti reload, tapi layanan tidak mendukung reload . |
Memungkinkan | Ketika kita ingin layanan yang dinonaktifkan dijalankan pada saat boot. |
Nonaktifkan | Digunakan terutama saat ada kebutuhan untuk menghentikan layanan, tetapi layanan dimulai saat boot. |
Untuk memeriksa status layanan -
[root@localhost]# systemctl status network.service
network.service - LSB: Bring up/down networking
Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
Active: active (exited) since Sat 2017-01-14 04:43:48 EST; 1min 31s ago
Docs: man:systemd-sysv-generator(8)
Process: 923 ExecStart = /etc/rc.d/init.d/network start (code=exited, status = 0/SUCCESS)
localhost.localdomain systemd[1]: Starting LSB: Bring up/down networking...
localhost.localdomain network[923]: Bringing up loopback interface: [ OK ]
localhost.localdomain systemd[1]: Started LSB: Bring up/down networking.
[root@localhost]#
Tunjukkan kepada kami status layanan jaringan saat ini . Jika kita ingin melihat semua layanan yang berhubungan dengan jaringan, kita dapat menggunakan -
[root@localhost]# systemctl --all -t service | grep -i network
network.service loaded active exited LSB: Bring up/
NetworkManager-wait-online.service loaded active exited Network Manager
NetworkManager.service loaded active running Network Manager
ntpd.service loaded inactive dead Network Time
rhel-import-state.service loaded active exited Import network
[root@localhost]#
Bagi mereka yang akrab dengan file sysinitmetode pengelolaan layanan, penting untuk melakukan transisi ke systemd . systemd adalah cara baru untuk memulai dan menghentikan layanan daemon di Linux.