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.