GNU/Linux >> Belajar Linux >  >> Linux

Mengelola sumber daya dengan cgroups di systemd

Ada sedikit yang lebih membuat saya frustrasi sebagai sysadmin daripada kehabisan sumber daya komputasi secara tak terduga. Pada lebih dari satu kesempatan, saya telah mengisi semua ruang disk yang tersedia di sebuah partisi, kehabisan RAM, dan tidak memiliki cukup waktu CPU untuk melakukan tugas saya dalam waktu yang wajar. Manajemen sumber daya adalah salah satu tugas terpenting yang dilakukan sysadmin.

Inti dari manajemen sumber daya adalah untuk memastikan bahwa semua proses memiliki akses yang relatif sama ke sumber daya sistem yang mereka butuhkan. Manajemen sumber daya juga melibatkan memastikan bahwa RAM, ruang hard drive, dan kapasitas CPU ditambahkan bila diperlukan atau dijatah bila tidak memungkinkan. Selain itu, pengguna yang memonopoli sumber daya sistem, baik sengaja atau tidak sengaja, harus dicegah untuk melakukannya.

Ada alat yang memungkinkan sysadmin untuk memantau dan mengelola berbagai sumber daya sistem. Misalnya, alat teratas dan serupa memungkinkan Anda untuk memantau penggunaan memori, I/O, penyimpanan (disk, SSD, dll.), jaringan, ruang swap, penggunaan CPU, dan banyak lagi. Alat-alat ini, terutama yang berpusat pada CPU, sebagian besar didasarkan pada paradigma bahwa proses yang berjalan adalah unit kontrol. Paling-paling, mereka menyediakan cara untuk menyesuaikan nomor yang bagus – dan melalui itu, prioritasnya – atau untuk mematikan proses yang sedang berjalan. (Untuk informasi tentang nomor bagus, lihat Memantau host Linux dan Windows dengan Glances .)

Selengkapnya tentang sysadmin

  • Aktifkan blog Sysadmin
  • Perusahaan Otomatis:panduan untuk mengelola TI dengan otomatisasi
  • eBook:Kemungkinan Otomatisasi untuk SysAdmins
  • Kisah dari lapangan:Panduan administrator sistem untuk otomatisasi TI
  • eBook:Panduan Kubernetes untuk SRE dan sysadmin
  • Artikel sysadmin terbaru

Alat lain berdasarkan manajemen sumber daya tradisional di lingkungan SystemV dikelola oleh /etc/security/limits.conf dan file konfigurasi lokal yang terletak di /etc/security/limits.d direktori. Sumber daya dapat dibatasi dengan cara yang cukup kasar tetapi bermanfaat oleh pengguna atau grup. Sumber daya yang dapat dikelola mencakup berbagai aspek RAM, total waktu CPU per hari, jumlah total data, prioritas, nomor bagus, jumlah login bersamaan, jumlah proses, ukuran file maksimum, dan banyak lagi.

Menggunakan cgroups untuk manajemen proses

Satu perbedaan utama antara systemd dan SystemV adalah bagaimana mereka menangani proses. SystemV memperlakukan setiap proses sebagai entitas tersendiri. systemd mengumpulkan proses terkait ke dalam grup kontrol, yang disebut cgroups (kependekan dari grup kontrol), dan mengelola sumber daya sistem untuk cgroup secara keseluruhan. Ini berarti sumber daya dapat dikelola per aplikasi, bukan oleh proses individual yang membentuk aplikasi.

Unit kontrol untuk cgroup disebut unit irisan. Slice adalah konseptualisasi yang memungkinkan systemd untuk mengurutkan proses dalam format pohon untuk kemudahan pengelolaan.

Melihat cgroups

Saya akan mulai dengan beberapa perintah yang memungkinkan Anda untuk melihat berbagai jenis informasi tentang cgroups. systemctl status <service> perintah menampilkan informasi irisan tentang layanan tertentu, termasuk irisannya. Contoh ini menunjukkan at daemon:

[root@testvm1 ~]# systemctl status atd.service
● atd.service - Deferred execution scheduler
     Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-09-23 12:18:24 EDT; 1 day 3h ago
       Docs: man:atd(8)
   Main PID: 1010 (atd)
      Tasks: 1 (limit: 14760)
     Memory: 440.0K
        CPU: 5ms
     CGroup: /system.slice/atd.service
             └─1010 /usr/sbin/atd -f

Sep 23 12:18:24 testvm1.both.org systemd[1]: Started Deferred execution scheduler.
[root@testvm1 ~]#

Ini adalah contoh yang sangat baik dari salah satu alasan mengapa saya menemukan systemd lebih bermanfaat daripada SystemV dan program init lama. Ada lebih banyak informasi di sini daripada yang dapat diberikan SystemV. Entri cgroup menyertakan struktur hierarki tempat system.slice adalah systemd (PID 1), dan atd.service adalah satu tingkat di bawah dan merupakan bagian dari system.slice . Baris kedua dari entri cgroup juga menunjukkan ID proses (PID) dan perintah yang digunakan untuk memulai daemon.

systemctl perintah menunjukkan beberapa entri cgroup. --all opsi menunjukkan semua irisan, termasuk yang saat ini tidak aktif:

[root@testvm1 ~]# systemctl -t slice --all
  UNIT                             LOAD   ACTIVE   SUB    DESCRIPTION                    
  -.slice                          loaded active   active Root Slice                      
  system-getty.slice               loaded active   active system-getty.slice              
  system-lvm2\x2dpvscan.slice      loaded active   active system-lvm2\x2dpvscan.slice    
  system-modprobe.slice            loaded active   active system-modprobe.slice          
  system-sshd\x2dkeygen.slice      loaded active   active system-sshd\x2dkeygen.slice    
  system-systemd\x2dcoredump.slice loaded inactive dead   system-systemd\x2dcoredump.slice
  system-systemd\x2dfsck.slice     loaded active   active system-systemd\x2dfsck.slice    
  system.slice                     loaded active   active System Slice                    
  user-0.slice                     loaded active   active User Slice of UID 0            
  user-1000.slice                  loaded active   active User Slice of UID 1000          
  user.slice                       loaded active   active User and Session Slice          

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

11 loaded units listed.
To show all installed unit files use 'systemctl list-unit-files'.
[root@testvm1 ~]#

Hal pertama yang harus diperhatikan tentang data ini adalah ia menunjukkan irisan pengguna untuk UID 0 (root) dan 1000, yang merupakan login pengguna saya. Ini hanya menampilkan irisan dan bukan layanan yang merupakan bagian dari setiap irisan. Data ini menunjukkan bahwa irisan dibuat untuk setiap pengguna pada saat mereka masuk. Ini dapat menyediakan cara untuk mengelola semua tugas pengguna sebagai entitas cgroup tunggal.

Jelajahi hierarki cgroup

Sejauh ini semuanya baik-baik saja, tetapi cgroup bersifat hierarkis, dan semua unit layanan dijalankan sebagai anggota salah satu cgroup. Melihat hierarki itu mudah dan menggunakan satu perintah lama dan satu perintah baru yang merupakan bagian dari systemd.

ps perintah dapat digunakan untuk memetakan proses dan lokasinya dalam hierarki cgroup. Perhatikan bahwa perlu untuk menentukan kolom data yang diinginkan saat menggunakan ps memerintah. Saya secara signifikan mengurangi volume output dari perintah di bawah ini, tetapi saya mencoba untuk membiarkan cukup sehingga Anda dapat merasakan apa yang mungkin Anda temukan di sistem Anda:

[root@testvm1 ~]# ps xawf -eo pid,user,cgroup,args
    PID USER     CGROUP                      COMMAND
      2 root     -                           [kthreadd]
      3 root     -                            \_ [rcu_gp]
      4 root     -                            \_ [rcu_par_gp]
      6 root     -                            \_ [kworker/0:0H-kblockd]
      9 root     -                            \_ [mm_percpu_wq]
     10 root     -                            \_ [ksoftirqd/0]
     11 root     -                            \_ [rcu_sched]
     12 root     -                            \_ [migration/0]
     13 root     -                            \_ [cpuhp/0]
     14 root     -                            \_ [cpuhp/1]
<SNIP>
 625406 root     -                            \_ [kworker/3:0-ata_sff]
 625409 root     -                            \_ [kworker/u8:0-events_unbound]
      1 root     0::/init.scope              /usr/lib/systemd/systemd --switched-root --system --deserialize 30
    588 root     0::/system.slice/systemd-jo /usr/lib/systemd/systemd-journald
    599 root     0::/system.slice/systemd-ud /usr/lib/systemd/systemd-udevd
    741 root     0::/system.slice/auditd.ser /sbin/auditd
    743 root     0::/system.slice/auditd.ser  \_ /usr/sbin/sedispatch
    764 root     0::/system.slice/ModemManag /usr/sbin/ModemManager
    765 root     0::/system.slice/NetworkMan /usr/sbin/NetworkManager --no-daemon
    767 root     0::/system.slice/irqbalance /usr/sbin/irqbalance --foreground
    779 root     0::/system.slice/mcelog.ser /usr/sbin/mcelog --ignorenodev --daemon --foreground
    781 root     0::/system.slice/rngd.servi /sbin/rngd -f
    782 root     0::/system.slice/rsyslog.se /usr/sbin/rsyslogd -n
<SNIP>
    893 root     0::/system.slice/sshd.servi sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
   1130 root     0::/user.slice/user-0.slice  \_ sshd: root [priv]
   1147 root     0::/user.slice/user-0.slice  |   \_ sshd: root@pts/0
   1148 root     0::/user.slice/user-0.slice  |       \_ -bash
   1321 root     0::/user.slice/user-0.slice  |           \_ screen
   1322 root     0::/user.slice/user-0.slice  |               \_ SCREEN
   1323 root     0::/user.slice/user-0.slice  |                   \_ /bin/bash
 498801 root     0::/user.slice/user-0.slice  |                   |   \_ man systemd.resource-control
 498813 root     0::/user.slice/user-0.slice  |                   |       \_ less
   1351 root     0::/user.slice/user-0.slice  |                   \_ /bin/bash
 123293 root     0::/user.slice/user-0.slice  |                   |   \_ man systemd.slice
 123305 root     0::/user.slice/user-0.slice  |                   |       \_ less
   1380 root     0::/user.slice/user-0.slice  |                   \_ /bin/bash
 625412 root     0::/user.slice/user-0.slice  |                   |   \_ ps xawf -eo pid,user,cgroup,args
 625413 root     0::/user.slice/user-0.slice  |                   |   \_ less
 246795 root     0::/user.slice/user-0.slice  |                   \_ /bin/bash
 625338 root     0::/user.slice/user-0.slice  |                       \_ /usr/bin/mc -P /var/tmp/mc-root/mc.pwd.246795
 625340 root     0::/user.slice/user-0.slice  |                           \_ bash -rcfile .bashrc
   1218 root     0::/user.slice/user-1000.sl  \_ sshd: dboth [priv]
   1233 dboth    0::/user.slice/user-1000.sl      \_ sshd: dboth@pts/1
   1235 dboth    0::/user.slice/user-1000.sl          \_ -bash
<SNIP>
   1010 root     0::/system.slice/atd.servic /usr/sbin/atd -f
   1011 root     0::/system.slice/crond.serv /usr/sbin/crond -n
   1098 root     0::/system.slice/lxdm.servi /usr/sbin/lxdm-binary
   1106 root     0::/system.slice/lxdm.servi  \_ /usr/libexec/Xorg -background none :0 vt01 -nolisten tcp -novtswitch -auth /var/run/lxdm/lxdm-:0.auth
 370621 root     0::/user.slice/user-1000.sl  \_ /usr/libexec/lxdm-session
 370631 dboth    0::/user.slice/user-1000.sl      \_ xfce4-session
 370841 dboth    0::/user.slice/user-1000.sl          \_ /usr/bin/ssh-agent /bin/sh -c exec -l bash -c "/usr/bin/startxfce4"
 370911 dboth    0::/user.slice/user-1000.sl          \_ xfwm4 --display :0.0 --sm-client-id 2dead44ab-0b4d-4101-bca4-e6771f4a8ac2
 370930 dboth    0::/user.slice/user-1000.sl          \_ xfce4-panel --display :0.0 --sm-client-id 2ce38b8ef-86fd-4189-ace5-deec1d0e0952
 370942 dboth    0::/user.slice/user-1000.sl          |   \_ /usr/lib64/xfce4/panel/wrapper-2.0 /usr/lib64/xfce4/panel/plugins/libsystray.so 6 23068680 systr
ay Notification Area Area where notification icons appear
 370943 dboth    0::/user.slice/user-1000.sl          |   \_ /usr/lib64/xfce4/panel/wrapper-2.0 /usr/lib64/xfce4/panel/plugins/libpulseaudio-plugin.so 8 2306
8681 pulseaudio PulseAudio Plugin Adjust the audio volume of the PulseAudio sound system
 370944 dboth    0::/user.slice/user-1000.sl          |   \_ /usr/lib64/xfce4/panel/wrapper-2.0 /usr/lib64/xfce4/panel/plugins/libxfce4powermanager.so 9 2306
8682 power-manager-plugin Power Manager Plugin Display the battery levels of your devices and control the brightness of your display
 370945 dboth    0::/user.slice/user-1000.sl          |   \_ /usr/lib64/xfce4/panel/wrapper-2.0 /usr/lib64/xfce4/panel/plugins/libnotification-plugin.so 10 2
3068683 notification-plugin Notification Plugin Notification plugin for the Xfce panel
 370948 dboth    0::/user.slice/user-1000.sl          |   \_ /usr/lib64/xfce4/panel/wrapper-2.0 /usr/lib64/xfce4/panel/plugins/libactions.so 14 23068684 acti
ons Action Buttons Log out, lock or other system actions
 370934 dboth    0::/user.slice/user-1000.sl          \_ Thunar --sm-client-id 2cfc809d8-4e1d-497a-a5c5-6e4fa509c3fb --daemon
 370939 dboth    0::/user.slice/user-1000.sl          \_ xfdesktop --display :0.0 --sm-client-id 299be0608-4dca-4055-b4d6-55ec6e73a324
 370962 dboth    0::/user.slice/user-1000.sl          \_ nm-applet
<SNIP>

Anda dapat melihat seluruh hierarki dengan systemd-cgls perintah, yang sedikit lebih sederhana karena tidak memerlukan opsi yang rumit.

Saya telah mempersingkat tampilan pohon ini secara signifikan. juga, tetapi saya meninggalkan cukup untuk memberi Anda gambaran tentang jumlah data serta jenis entri yang harus Anda lihat ketika Anda melakukan ini di sistem Anda. Saya melakukan ini di salah satu mesin virtual saya, dan panjangnya sekitar 200 baris; jumlah data dari stasiun kerja utama saya adalah sekitar 250 baris:

[root@testvm1 ~]# systemd-cgls
Control group /:
-.slice
├─user.slice
│ ├─user-0.slice
│ │ ├─session-1.scope
│ │ │ ├─  1130 sshd: root [priv]
│ │ │ ├─  1147 sshd: root@pts/0
│ │ │ ├─  1148 -bash
│ │ │ ├─  1321 screen
│ │ │ ├─  1322 SCREEN
│ │ │ ├─  1323 /bin/bash
│ │ │ ├─  1351 /bin/bash
│ │ │ ├─  1380 /bin/bash
│ │ │ ├─123293 man systemd.slice
│ │ │ ├─123305 less
│ │ │ ├─246795 /bin/bash
│ │ │ ├─371371 man systemd-cgls
│ │ │ ├─371383 less
│ │ │ ├─371469 systemd-cgls
│ │ │ └─371470 less
│ │ └─[email protected]
│ │   ├─dbus-broker.service
│ │   │ ├─1170 /usr/bin/dbus-broker-launch --scope user
│ │   │ └─1171 dbus-broker --log 4 --controller 12 --machine-id 3bccd1140fca488187f8a1439c832f07 --max-bytes 100000000000000 --max-fds 25000000000000 --max->
│ │   ├─gvfs-daemon.service
│ │   │ └─1173 /usr/libexec/gvfsd
│ │   └─init.scope
│ │     ├─1137 /usr/lib/systemd/systemd --user
│ │     └─1138 (sd-pam)
│ └─user-1000.slice
│   ├─[email protected]
│   │ ├─dbus\x2d:1.2\x2dorg.xfce.Xfconf.slice
│   │ │ └─dbus-:[email protected]
│   │ │   └─370748 /usr/lib64/xfce4/xfconf/xfconfd
│   │ ├─dbus\x2d:1.2\x2dca.desrt.dconf.slice
│   │ │ └─dbus-:[email protected]
│   │ │   └─371262 /usr/libexec/dconf-service
│   │ ├─dbus-broker.service
│   │ │ ├─1260 /usr/bin/dbus-broker-launch --scope user
│   │ │ └─1261 dbus-broker --log 4 --controller 11 --machine-id
<SNIP>
│   │ └─gvfs-mtp-volume-monitor.service
│   │   └─370987 /usr/libexec/gvfs-mtp-volume-monitor
│   ├─session-3.scope
│   │ ├─1218 sshd: dboth [priv]
│   │ ├─1233 sshd: dboth@pts/1
│   │ └─1235 -bash
│   └─session-7.scope
│     ├─370621 /usr/libexec/lxdm-session
│     ├─370631 xfce4-session
│     ├─370805 /usr/bin/VBoxClient --clipboard
│     ├─370806 /usr/bin/VBoxClient --clipboard
│     ├─370817 /usr/bin/VBoxClient --seamless
│     ├─370818 /usr/bin/VBoxClient --seamless
│     ├─370824 /usr/bin/VBoxClient --draganddrop
│     ├─370825 /usr/bin/VBoxClient --draganddrop
│     ├─370841 /usr/bin/ssh-agent /bin/sh -c exec -l bash -c "/usr/bin/startxfce4"
│     ├─370910 /bin/gpg-agent --sh --daemon --write-env-file /home/dboth/.cache/gpg-agent-info
│     ├─370911 xfwm4 --display :0.0 --sm-client-id 2dead44ab-0b4d-4101-bca4-e6771f4a8ac2
│     ├─370923 xfsettingsd --display :0.0 --sm-client-id 261b4a437-3029-461c-9551-68c2c42f4fef
│     ├─370930 xfce4-panel --display :0.0 --sm-client-id 2ce38b8ef-86fd-4189-ace5-deec1d0e0952
│     ├─370934 Thunar --sm-client-id 2cfc809d8-4e1d-497a-a5c5-6e4fa509c3fb --daemon
│     ├─370939 xfdesktop --display :0.0 --sm-client-id 299be0608-4dca-4055-b4d6-55ec6e73a324
<SNIP>
└─system.slice
  ├─rngd.service
  │ └─1650 /sbin/rngd -f
  ├─irqbalance.service
  │ └─1631 /usr/sbin/irqbalance --foreground
  ├─fprintd.service
  │ └─303383 /usr/libexec/fprintd
  ├─systemd-udevd.service
  │ └─956 /usr/lib/systemd/systemd-udevd
<SNIP>
  ├─systemd-journald.service
  │ └─588 /usr/lib/systemd/systemd-journald
  ├─atd.service
  │ └─1010 /usr/sbin/atd -f
  ├─system-dbus\x2d:1.10\x2dorg.freedesktop.problems.slice
  │ └─dbus-:[email protected]
  │   └─371197 /usr/sbin/abrt-dbus -t133
  ├─sshd.service
  │ └─893 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
  ├─vboxservice.service
  │ └─802 /usr/sbin/VBoxService -f
  ├─crond.service
  │ └─1011 /usr/sbin/crond -n
  ├─NetworkManager.service
  │ └─765 /usr/sbin/NetworkManager --no-daemon
  ├─switcheroo-control.service
  │ └─787 /usr/libexec/switcheroo-control
 <SNIP>

Tampilan struktur pohon ini menunjukkan semua pengguna dan irisan sistem serta layanan dan program yang berjalan di setiap cgroup. Perhatikan unit yang disebut "lingkup", yang mengelompokkan program terkait ke dalam unit manajemen, dalam user-1000.slice dalam daftar di atas. user-1000.slice/session-7.scope cgroup berisi hierarki program desktop GUI, dimulai dengan sesi manajer tampilan LXDM dan semua subtugasnya, termasuk hal-hal seperti shell Bash dan manajer file GUI Thunar.

Unit cakupan tidak ditentukan dalam file konfigurasi tetapi dihasilkan secara terprogram sebagai hasil dari memulai grup program terkait. Unit cakupan tidak membuat atau memulai proses yang berjalan sebagai bagian dari cgroup itu. Semua proses dalam ruang lingkup adalah sama, dan tidak ada hierarki internal. Kehidupan lingkup dimulai ketika proses pertama dibuat dan berakhir ketika proses terakhir dihancurkan.

Buka beberapa jendela di desktop Anda, seperti emulator terminal, LibreOffice, atau apa pun yang Anda inginkan, lalu alihkan ke konsol virtual yang tersedia dan mulai sesuatu seperti top atau Komandan Tengah Malam. Jalankan systemd-cgls perintah pada host Anda, dan perhatikan hierarki keseluruhan dan unit cakupan.

systemd-cgls perintah memberikan representasi yang lebih lengkap dari hierarki cgroup (dan detail unit yang membentuknya) daripada perintah lain yang saya temukan. Saya lebih suka representasi pohon yang lebih bersih daripada ps perintah menyediakan.

Dengan sedikit bantuan dari teman-teman saya

Setelah membahas dasar-dasar ini, saya telah merencanakan untuk membahas lebih detail tentang cgroups dan bagaimana menggunakannya, tetapi saya menemukan serangkaian empat artikel bagus oleh Steve Ovens dari Red Hat di situs saudara Opensource.com, Enable Sysadmin. Daripada pada dasarnya menulis ulang artikel Steve, saya memutuskan akan jauh lebih baik untuk memanfaatkan keahlian cgroup-nya dengan menautkan ke mereka:

  1. Pengantar sysadmin Linux untuk cgroups
  2. Cara mengelola cgroup dengan CPUShares
  3. Mengelola cgroup dengan cara yang sulit—secara manual
  4. Mengelola cgroup dengan systemd

Nikmati dan pelajari dari mereka, seperti yang saya lakukan.

Sumber daya lainnya

Ada banyak informasi tentang systemd yang tersedia di internet, tetapi banyak yang singkat, tumpul, atau bahkan menyesatkan. Selain sumber daya yang disebutkan dalam artikel ini, halaman web berikut menawarkan informasi yang lebih detail dan andal tentang startup systemd. Daftar ini telah berkembang sejak saya memulai rangkaian artikel ini untuk mencerminkan penelitian yang telah saya lakukan.

  • Proyek Fedora memiliki panduan praktis yang baik untuk systemd. Ini memiliki hampir semua yang perlu Anda ketahui untuk mengonfigurasi, mengelola, dan memelihara komputer Fedora menggunakan systemd.
  • Proyek Fedora juga memiliki lembar contekan bagus yang merujuk silang perintah SystemV lama ke perintah systemd yang sebanding.
  • Halaman manual systemd.unit(5) berisi daftar bagian file unit yang bagus dan opsi konfigurasinya bersama dengan deskripsi singkat masing-masing.
  • Dokumentasi Red Hat berisi deskripsi yang baik tentang struktur file Unit serta informasi penting lainnya.
  • Untuk informasi teknis terperinci tentang systemd dan alasan pembuatannya, lihat deskripsi Freedesktop.org tentang systemd. Halaman ini adalah salah satu yang terbaik yang saya temukan karena berisi banyak tautan ke dokumentasi penting dan akurat lainnya.
  • "Lebih banyak sistem menyenangkan" dari Linux.com menawarkan informasi dan tips sistem yang lebih canggih.
  • Lihat halaman manual untuk systemd.resource-control(5).
  • Dalam Panduan pengguna dan administrator kernel Linux , lihat entri Grup Kontrol v2.

Ada juga serangkaian artikel yang sangat teknis untuk sysadmin Linux oleh Lennart Poettering, perancang dan pengembang utama systemd. Artikel-artikel ini ditulis antara April 2010 dan September 2011, tetapi masih relevan sekarang seperti dulu. Banyak hal bagus lainnya yang telah ditulis tentang systemd dan ekosistemnya didasarkan pada makalah ini.

  • Memikirkan kembali PID 1
  • systemd untuk Administrator, Bagian I
  • systemd untuk Administrator, Bagian II
  • systemd untuk Administrator, Bagian III
  • systemd untuk Administrator, Bagian IV
  • systemd untuk Administrator, Bagian V
  • systemd untuk Administrator, Bagian VI
  • systemd untuk Administrator, Bagian VII
  • systemd untuk Administrator, Bagian VIII
  • systemd untuk Administrator, Bagian IX
  • systemd untuk Administrator, Bagian X
  • systemd untuk Administrator, Bagian XI

Linux
  1. Mengelola perangkat keras Anda yang terpasang di Linux dengan systemd-udevd

  2. Mengelola partisi di Linux dengan fdisk

  3. Membuat dan mengelola partisi di Linux dengan parted

  1. Cara Mengelola Layanan Systemd dengan Systemctl di Linux

  2. Kesalahan Ini Tentang Pemula/systemd Dengan Runit?

  3. Automount USB drive dengan systemd

  1. Boot Non-grafis Dengan Systemd?

  2. RedHat / CentOS :Mengelola RAID perangkat lunak dengan mdadm

  3. Systemd dengan banyak execStart