Bagaimana cara mengelola layanan Systemd dengan Systemctl?

Bagaimana cara mengelola layanan Systemd dengan Systemctl?

Sistem default dan manajer layanan untuk sebagian besar distribusi Linux sekarang adalah systemd.

The systemd Proses menggantikan SysV init. Ini berjalan sebagai proses pertama setelah boot kernel dan bertanggung jawab untuk membawa host Linux ke keadaan di mana ia dapat digunakan. Ini bertanggung jawab untuk memulai dan mengelola layanan, memasang sistem file, mengelola perangkat keras, membuat prompt login, dan banyak lagi.

Manfaat utama dari SysV adalah systemd memulai layanan sebanyak mungkin secara paralel, sehingga mempercepat proses startup , dan itu menampilkan layar login lebih cepat.

Unit

Item yang dikelola oleh systemd disebut unit. File unit terletak di /lib/systemd/sistem.

Unit Layanan

Untuk manajemen layanan, unit targetnya adalah unit layanan, yang memiliki file unit dengan akhiran .service .

Mengelola layanan systemd

Perintah untuk mengelola unit systemd adalah systemctl.

Memulai dan Menghentikan Layanan

Untuk memulai layanan systemd, gunakan perintah start systemctl:

$ sudo systemctl start name.service

Anda dapat meninggalkan akhiran .service. Misalnya, untuk memulai server apache di Ubuntu:

$ sudo systemctl start apache2

Untuk menghentikan layanan yang berjalan:

$sudo systemctl stop name.service

Jadi, untuk menghentikan server apache di Ubuntu:

$ sudo systemctl stop apache2

Memulai kembali dan memuat ulang layanan

Untuk memulai kembali layanan yang sedang berjalan, gunakan perintah mulai ulang:

$ sudo systemctl restart name.service

Dan di mana satu-satunya file konfigurasi yang dimuat ulang diperlukan

$ sudo systemctl reload name.service

Mengaktifkan dan Menonaktifkan Layanan

Jika Anda ingin layanan dimulai secara otomatis saat boot sistem, gunakan perintah aktifkan:

$ sudo systemctl enable name.service

Untuk menonaktifkan layanan dari mulai saat boot sistem:

$ sudo systemctl disable name.service

Menonaktifkan tidak menghentikan layanan yang sedang berjalan.

Melihat status layanan

Untuk melihat informasi tentang suatu layanan:

$ sudo systemctl status name.service

Ini akan menunjukkan kepada Anda status layanan dan beberapa baris pertama dari file log. Jadi, saat layanan sedang berjalan, keluaran dari

sudo systemctl status apache2
apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Tue 2020-05-19 22:11:36 UTC; 4 days ago
  Process: 116002 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
Main PID: 104165 (apache2)
    Tasks: 55 (limit: 1024)
   CGroup: /system.slice/apache2.service
           ├─104165 /usr/sbin/apache2 -k start
           ├─116006 /usr/sbin/apache2 -k start
           └─116007 /usr/sbin/apache2 -k start

May 19 22:11:36 ubuntu18 systemd[1]: Starting The Apache HTTP Server...
May 19 22:11:36 ubuntu18 systemd[1]: Started The Apache HTTP Server.
May 21 06:25:01 ubuntu18 systemd[1]: Reloading The Apache HTTP Server.
May 21 06:25:01 ubuntu18 systemd[1]: Reloaded The Apache HTTP Server.
May 22 06:25:01 ubuntu18 systemd[1]: Reloading The Apache HTTP Server.

Untuk memeriksa apakah suatu layanan aktif:

$ sudo systemctl is-active name.service

Jadi, saat layanan apache2 berjalan, output dari perintah systemctl is-active adalah:

$ sudo systemctl is-active apache2
active

Untuk memeriksa apakah layanan diaktifkan:

$ sudo systemctl is-enabled name.service.

Melihat Status Sistem

Semua perintah yang Anda lihat sampai sekarang digunakan untuk mengelola satu layanan. Jika Anda menginginkan gambaran umum tentang status sistem, gunakan rangkaian perintah berikut:

Untuk melihat semua tipe unit

$ sudo systemctl -t help
Available unit types:
service
socket
target
device
mount
automount
swap
timer
path
slice
scope

Untuk mendaftar semua unit yang diinstal, gunakan file-unit-daftar

$ sudo systemctl list-unit-files
UNIT FILE                              STATE          
proc-sys-fs-binfmt_misc.automount      static         
-.mount                                generated      
boot-efi.mount                         generated      
dev-hugepages.mount                    static         
dev-mqueue.mount                       static         
mnt.mount                              generated      
proc-sys-fs-binfmt_misc.mount          static         
sys-fs-fuse-connections.mount          static         
sys-kernel-config.mount                static         
sys-kernel-debug.mount                 static         
acpid.path                             enabled        
apport-autoreport.path                 enabled        
systemd-ask-password-console.path      static         
systemd-ask-password-plymouth.path     static         
systemd-ask-password-wall.path         static         
session-161.scope                      transient      
accounts-daemon.service                enabled        

Outputnya hanya memiliki dua kolom Unit File dan State. Status biasanya akan diaktifkan, dinonaktifkan, statis, atau ditutupi.

  • Statis : Ini berarti unit tidak dapat diaktifkan, melakukan tindakan satu kali, atau merupakan ketergantungan dari unit lain dan tidak dapat dijalankan dengan sendirinya.
  • Masked: Sebuah unit terdaftar sebagai masked berarti itu benar-benar tidak dapat dimulai, karena terhubung ke / dev / null Ini disebut masking unit. Ini mencegah layanan dimulai, secara manual atau otomatis.

Buat daftar semua layanan yang diinstal

Perintah systemctl list-unit-files dengan -t atau –type service filter hanya menunjukkan status layanan yang diinstal.

$ sudo systemctl list-unit-files -t service
UNIT FILE                              STATE    
accounts-daemon.service                enabled  
acpid.service                          disabled 
apache-htcacheclean.service            disabled 
apache-htcacheclean@.service           disabled 
apache2.service                        enabled  
apache2@.service                       disabled 
apparmor.service                       enabled  
apport-autoreport.service              static   
apport-forward@.service                static   
apport.service                         generated
apt-daily-upgrade.service              static   
apt-daily.service                      static   
atd.service                            enabled  
autovt@.service                        enabled  
blk-availability.service               enabled  
bootlogd.service                       masked   
bootlogs.service                       masked   

Untuk melihat semua unit layanan yang aktif, gunakan unit daftar dengan filter layanan -t

$ sudo systemctl list-units -t service
UNIT                                 LOAD   ACTIVE SUB     DESCRIPTION                             
  accounts-daemon.service              loaded active running Accounts Service                        
  apache2.service                      loaded active running The Apache HTTP Server                  
  apparmor.service                     loaded active exited  AppArmor initialization                 
  apport.service                       loaded active exited  LSB: automatic crash report generation  
  atd.service                          loaded active running Deferred execution scheduler            
  blk-availability.service             loaded active exited  Availability of block devices           
  cloud-config.service                 loaded active exited  Apply the settings specified in cloud-con
  cloud-final.service                  loaded active exited  Execute cloud user/final scripts        
  cloud-init-local.service             loaded active exited  Initial cloud-init job (pre-networking) 
  cloud-init.service                   loaded active exited  Initial cloud-init job (metadata service 
  console-setup.service                loaded active exited  Set console font and keymap             
  cron.service                         loaded active running Regular background program processing dae

Outputnya memiliki kolom berikut:

  • UNIT : Nama unit layanan systemd
  • LOAD : Menunjukkan apakah definisi unit dibaca dan dimuat dengan benar
  • AKTIF : Menjelaskan apakah unit aktif.
  • SUB : Status aktivasi unit tingkat rendah, memberikan informasi lebih rinci tentang unit. Ini akan berbeda menurut tipe unit.
  • DESKRIPSI : Deskripsi unit layanan.

Kesimpulan

Saya harap ini memberi Anda gambaran tentang menggunakan systemctl untuk mengelola layanan di Linux. 

Tinggalkan Balasan