GNU/Linux >> Belajar Linux >  >> Linux

10 perintah systemd yang berguna:Referensi

systemd yang buruk telah memiliki bagian dari pencela, tetapi tampaknya ada di sini untuk tinggal untuk admin Linux jadi kami mungkin juga terbiasa. systemd handy yang praktis ini referensi perintah akan membantu Anda menjaga kewarasan Anda saat mencoba melakukan tugas administratif normal. Jadi, sampai kita mendapatkan sesuatu yang lebih bermanfaat, enak, dan diinginkan daripada systemd , silakan nikmati daftar sepuluh perintah praktis ini untuk kenyamanan Anda. Perintah-perintah ini tidak dalam urutan kepentingan atau relevansi tertentu.

Mencantumkan file unit

Dari systemd halaman manual:File unit adalah file gaya ini teks biasa yang mengkodekan informasi tentang layanan, soket, perangkat, titik mount, titik automount, file swap atau partisi, target start-up, file yang ditonton jalur sistem, pengatur waktu yang dikendalikan dan diawasi oleh systemd , bagian pengelolaan sumber daya, atau sekelompok proses yang dibuat secara eksternal.

$ systemctl list-unit-files UNIT FILE                                     STATE    proc-sys-fs-binfmt_misc.automount             static   dev-hugepages.mount                           static dev-mqueue.mount                              static  proc-sys-fs-binfmt_misc.mount                 static   sys-fs-fuse-connections.mount                 static   sys-kernel-config.mount                       static   sys-kernel-debug.mount                        static   tmp.mount                                     disabled brandbot.path                                 disabled systemd-ask-password-console.path             static   systemd-ask-password-plymouth.path            static   systemd-ask-password-wall.path                static   session-1.scope                               static   arp-ethers.service                            disabled auditd.service                                enabled  [email protected]                               enabled  <many more entries>

Tentu saja, Anda selalu dapat mengirim ke grep untuk hanya melihat layanan yang diaktifkan.

$ systemctl list-unit-files |grep enabled

auditd.service                                enabled 
[email protected]                               enabled 
crond.service                                 enabled 
dbus-org.fedoraproject.FirewallD1.service     enabled 
dbus-org.freedesktop.nm-dispatcher.service    enabled 
firewalld.service                             enabled 
[email protected]                                enabled 
irqbalance.service                            enabled 
kdump.service                                 enabled 
lvm2-monitor.service                          enabled 

<many more entries> 

File unit ini, terletak di bawah /lib/systemd/system , kira-kira setara dengan skrip init lama yang terletak di bawah /etc/rc.d/init.d . Sebenarnya, jika Anda atau penginstalan perangkat lunak Anda membuat skrip init, systemd . yang sesuai file unit dipetakan untuk Anda. Penjelasan lebih lanjut diberikan oleh /etc/rc.d/init.d/README :

You are looking for the traditional init scripts in /etc/rc.d/init.d,
and they are gone?

Here's an explanation on what's going on:

You are running a systemd-based OS where traditional init scripts have
been replaced by native systemd services files. Service files provide
very similar functionality to init scripts. To make use of service
files simply invoke "systemctl", which will output a list of all
currently running services (and other units). Use "systemctl
list-unit-files" to get a listing of all known unit files, including
stopped, disabled and masked ones. Use "systemctl start
foobar.service" and "systemctl stop foobar.service" to start or stop a
service, respectively. For further details, please refer to
systemctl(1).

Note that traditional init scripts continue to function on a systemd
system. An init script /etc/rc.d/init.d/foobar is implicitly mapped
into a service unit foobar.service during system initialization.

Thank you!

Further reading:
        man:systemctl(1)
        man:systemd(1)
        http://0pointer.de/blog/projects/systemd-for-admins-3.html
        http://www.freedesktop.org/wiki/Software/systemd/Incompatibilities 

Seperti yang Anda lihat, init.d telah dihapus demi systemd . Itu di sini untuk tinggal sampai seseorang datang dengan sesuatu yang lebih baik. (Saya berharap seseorang dengan cepat mengerjakan penggantinya.)

Mencantumkan unit

Mencantumkan unit aktif menampilkan banyak informasi berguna tentang layanan Anda yang dimuat dan aktif. Outputnya terlalu detail untuk diperlihatkan di sini, tetapi coba perintah berikut di sistem Anda untuk melihat apa yang saya maksud.

$ systemctl list-units 

Bidang status sangat bagus untuk dilihat, tetapi bidang deskripsi adalah yang paling berguna bagi saya. Ini memberikan informasi mendetail tentang layanan Anda.

Memulai layanan

Untuk mendapatkan nama layanan, daftar file unit Anda dan grep untuk yang Anda inginkan. Kemudian gunakan systemctl perintah untuk memulai layanan Anda. Saya menggunakan firewalld sebagai contoh.

$ sudo systemctl start firewalld 

Anehnya, atau mungkin tidak terlalu mengejutkan, tidak ada respons dari memulai, menghentikan, atau memulai kembali layanan. Untuk memeriksa status layanan, Anda harus menggunakan perintah status.

Memeriksa status layanan

Untuk memeriksa status layanan, gunakan systemctl status service-name perintah.

$ sudo systemctl status sshd
[sudo] password for khess: 
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2020-04-29 07:44:57 CDT; 2h 17min ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 1055 (sshd)
   CGroup: /system.slice/sshd.service
           └─1055 /usr/sbin/sshd -D

Apr 29 07:44:57 centos7 systemd[1]: Starting OpenSSH server daemon...
Apr 29 07:44:57 centos7 sshd[1055]: Server listening on 0.0.0.0 port 22.
Apr 29 07:44:57 centos7 sshd[1055]: Server listening on :: port 22.
Apr 29 07:44:57 centos7 systemd[1]: Started OpenSSH server daemon.
Apr 29 07:51:35 centos7 sshd[1396]: Accepted password for khess from 192.168.1.85 port 56769 ssh2 

Saya suka status systemd karena detail yang diberikan. Misalnya, dalam daftar di atas, Anda melihat jalur lengkap ke file unit, status, perintah mulai, dan perubahan status terbaru.

[ Ingin mencoba Red Hat Enterprise Linux? Unduh sekarang secara gratis. ]

Menghentikan layanan

Menghentikan layanan yang sedang berjalan semudah memulainya.

$ sudo systemctl stop firewalld 

Sekali lagi, Anda tidak melihat respons dari mengeluarkan perintah ini. Keluarkan status layanan untuk memeriksa keberhasilan atau kegagalan Anda.

Memulai ulang layanan

Jika Anda ingin menghentikan dan memulai layanan tanpa mengeluarkan dua perintah (bagaimanapun juga, sysadmin banyak yang malas), lakukan mulai ulang.

$ sudo systemctl restart firewalld 

Tidak ada respons sistem yang ditampilkan.

Sistem mulai ulang, hentikan, dan matikan

Ketiga tugas ini adalah tugas umum yang perlu diketahui oleh sysadmin dan sekarang berada di bawah kendali systemd .

Mulai ulang

Ada beberapa cara untuk me-restart sistem Anda, tetapi standby lama, reboot, sebenarnya adalah tautan ke systemctl memerintah. Saya berasumsi bahwa karena berfungsi, ini menautkan systemctl perintah dengan sakelar reboot ditambahkan sebagai berikut:

$ sudo systemctl reboot 

Tautan yang sama berlaku untuk halt dan perintah shutdown.

Matikan dan hentikan

Tidak masalah bagaimana Anda melakukannya dengan halt -p atau shutdown now atau apa pun, perintah universal sekarang:

$ sudo systemctl poweroff 

Perintah ini mematikan sistem.

Menyetel layanan agar berjalan saat booting

Anda sudah terbiasa dengan chkconfig perintah untuk mengaktifkan layanan Anda untuk berjalan saat boot dan di bawah runlevel tertentu. Yah, hari-hari itu juga telah berlalu, dan mereka telah dirampas oleh systemctl yang ada di mana-mana perintah.

Mengaktifkan layanan untuk berjalan saat booting

Untuk mengatur layanan apa pun untuk memulai saat boot, jalankan perintah berikut. Saya menggunakan firewalld sebagai contoh layanan.

$ sudo systemctl enable firewalld 

Menonaktifkan layanan agar tidak berjalan saat boot

Untuk mencegah layanan apa pun dimulai saat boot, terbitkan:

$ sudo systemctl disable firewalld 

firewalld layanan tidak akan dimulai saat boot.

Menutup

systemd/systemctl yang singkat namun berguna ini panduan referensi harus menghilangkan rasa sakit saat berurusan dengan systemd . Itulah teorinya, setidaknya. Dan, seperti yang sering Anda lihat di artikel saya atau mendengar saya berkata dengan lantang, "Semuanya bekerja di atas kertas." Pastikan untuk memberi tahu saya di Twitter pendapat Anda tentang artikel saya dan juga untuk menyarankan topik baru.

[ Kursus online gratis:Tinjauan teknis Red Hat Enterprise Linux. ]


Linux
  1. Cara membuat layanan Systemd di Linux

  2. Menambahkan layanan baru ke sistem Linuxd

  3. Menulis File Layanan Systemd Dasar?

  1. Linux – Lokasi Skrip Fsck?

  2. Bagaimana Cara Mengemas Layanan Systemd?

  3. referensi baris perintah systemd (lembar contekan)

  1. Cara mengarahkan output dari layanan systemd ke file

  2. @reboot tidak berfungsi di CRON

  3. Bagaimana menghentikan layanan systemd