Cara Mengelola Layanan dan Unit 'Systemd' Menggunakan 'Systemctl' di Linux
Systemctl adalah utilitas systemd yang bertanggung jawab untuk Mengontrol sistem dan manajer layanan systemd. Systemd adalah kumpulan daemon, utilitas, dan pustaka manajemen sistem yang berfungsi sebagai pengganti daemon System V init. Systemd berfungsi sebagai manajemen pusat dan platform konfigurasi untuk sistem mirip UNIX.
Di Linux, Ekosistem Systemd telah diterapkan pada sebagian besar Distribusi Linux standar dengan beberapa pengecualian. Systemd sering kali merupakan Proses induk dari semua daemon lainnya, tetapi tidak selalu.
Artikel ini bertujuan untuk menjelaskan “Cara mengontrol Sistem dan Layanan ” pada sistem yang menjalankan systemd.
Dimulai dengan Dasar-Dasar Systemtd dan Systemctl
1. Pertama, periksa apakah systemd diinstal pada sistem Anda atau tidak, dan apa versi Systemd yang diinstal saat ini?
systemctl --version
systemd 215
+PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP -APPARMOR
Jelas dari contoh di atas, bahwa kami telah menginstal versi systemd 215.
2. Periksa di mana biner dan pustaka systemd dan systemctl dipasang.
whereis systemd
systemd: /usr/lib/systemd /etc/systemd /usr/share/systemd /usr/share/man/man1/systemd.1.gz
whereis systemctl
systemctl: /usr/bin/systemctl /usr/share/man/man1/systemctl.1.gz
3. Periksa apakah systemd berjalan atau tidak.
ps -eaf | grep [s]ystemd
root 1 0 0 16:27 ? 00:00:00 /usr/lib/systemd/systemd --switched-root --system --deserialize 23
root 444 1 0 16:27 ? 00:00:00 /usr/lib/systemd/systemd-journald
root 469 1 0 16:27 ? 00:00:00 /usr/lib/systemd/systemd-udevd
root 555 1 0 16:27 ? 00:00:00 /usr/lib/systemd/systemd-logind
dbus 556 1 0 16:27 ? 00:00:00 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
Pemberitahuan: systemd berjalan sebagai daemon induk (PID=1). Pada perintah di atas ps dengan (-e) pilih semua Proses, (-a) pilih semua proses kecuali pemimpin sesi dan ( -f) untuk daftar format lengkap (yaitu -eaf).
Perhatikan juga tanda kurung siku pada contoh di atas dan contoh lainnya yang menyusul. Ekspresi Braket Kotak adalah bagian dari pencocokan pola kelas karakter grep.
4. Analisis proses booting sistem.
systemd-analyze
Startup finished in 487ms (kernel) + 2.776s (initrd) + 20.229s (userspace) = 23.493s
5. Analisis waktu yang dibutuhkan setiap proses saat boot.
systemd-analyze blame
8.565s mariadb.service
7.991s webmin.service
6.095s postfix.service
4.311s httpd.service
3.926s firewalld.service
3.780s kdump.service
3.238s tuned.service
1.712s network.service
1.394s lvm2-monitor.service
1.126s systemd-logind.service
....
6. Analisis rantai kritis saat boot.
systemd-analyze critical-chain
The time after the unit is active or started is printed after the "@" character.
The time the unit takes to start is printed after the "+" character.
multi-user.target @20.222s
└─mariadb.service @11.657s +8.565s
└─network.target @11.168s
└─network.service @9.456s +1.712s
└─NetworkManager.service @8.858s +596ms
└─firewalld.service @4.931s +3.926s
└─basic.target @4.916s
└─sockets.target @4.916s
└─dbus.socket @4.916s
└─sysinit.target @4.905s
└─systemd-update-utmp.service @4.864s +39ms
└─auditd.service @4.563s +301ms
└─systemd-tmpfiles-setup.service @4.485s +69ms
└─rhel-import-state.service @4.342s +142ms
└─local-fs.target @4.324s
└─boot.mount @4.286s +31ms
└─systemd-fsck@dev-disk-by\x2duuid-79f594ad\x2da332\x2d4730\x2dbb5f\x2d85d19608096
└─dev-disk-by\x2duuid-79f594ad\x2da332\x2d4730\x2dbb5f\x2d85d196080964.device @4
Penting: Systemctl menerima layanan (.service), titik pemasangan (.mount), soket (.socket) dan perangkat (.device) sebagai unit.
7. Cantumkan semua unit yang tersedia.
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
.....
8. Cantumkan semua unit yang berjalan.
systemctl list-units
UNIT LOAD ACTIVE SUB DESCRIPTION
proc-sys-fs-binfmt_misc.automount loaded active waiting Arbitrary Executable File Formats File Syste
sys-devices-pc...0-1:0:0:0-block-sr0.device loaded active plugged VBOX_CD-ROM
sys-devices-pc...:00:03.0-net-enp0s3.device loaded active plugged PRO/1000 MT Desktop Adapter
sys-devices-pc...00:05.0-sound-card0.device loaded active plugged 82801AA AC'97 Audio Controller
sys-devices-pc...:0:0-block-sda-sda1.device loaded active plugged VBOX_HARDDISK
sys-devices-pc...:0:0-block-sda-sda2.device loaded active plugged LVM PV Qzyo3l-qYaL-uRUa-Cjuk-pljo-qKtX-VgBQ8
sys-devices-pc...0-2:0:0:0-block-sda.device loaded active plugged VBOX_HARDDISK
sys-devices-pl...erial8250-tty-ttyS0.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS0
sys-devices-pl...erial8250-tty-ttyS1.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS1
sys-devices-pl...erial8250-tty-ttyS2.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS2
sys-devices-pl...erial8250-tty-ttyS3.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS3
sys-devices-virtual-block-dm\x2d0.device loaded active plugged /sys/devices/virtual/block/dm-0
sys-devices-virtual-block-dm\x2d1.device loaded active plugged /sys/devices/virtual/block/dm-1
sys-module-configfs.device loaded active plugged /sys/module/configfs
...
9. Cantumkan semua unit yang gagal.
systemctl --failed
UNIT LOAD ACTIVE SUB DESCRIPTION
kdump.service loaded failed failed Crash recovery kernel arming
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.
1 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.
10. Periksa apakah Unit (cron.service) diaktifkan atau tidak?.
systemctl is-enabled crond.service
enabled
11. Periksa apakah Unit atau Layanan sedang berjalan atau tidak?.
systemctl status firewalld.service
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
Active: active (running) since Tue 2015-04-28 16:27:55 IST; 34min ago
Main PID: 549 (firewalld)
CGroup: /system.slice/firewalld.service
└─549 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
Apr 28 16:27:51 tecmint systemd[1]: Starting firewalld - dynamic firewall daemon...
Apr 28 16:27:55 tecmint systemd[1]: Started firewalld - dynamic firewall daemon.
Kontrol dan Kelola Layanan Menggunakan Systemctl
12. Cantumkan semua layanan (termasuk yang diaktifkan dan dinonaktifkan).
systemctl list-unit-files --type=service
UNIT FILE STATE
arp-ethers.service disabled
auditd.service enabled
[email disabled
blk-availability.service disabled
brandbot.service static
collectd.service disabled
console-getty.service disabled
console-shell.service disabled
cpupower.service disabled
crond.service enabled
dbus-org.fedoraproject.FirewallD1.service enabled
....
13. Bagaimana cara memulai, memulai ulang, menghentikan, memuat ulang, dan memeriksa status layanan (httpd.service) di Linux.
systemctl start httpd.service
systemctl restart httpd.service
systemctl stop httpd.service
systemctl reload httpd.service
systemctl status httpd.service
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: active (running) since Tue 2015-04-28 17:21:30 IST; 6s ago
Process: 2876 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
Main PID: 2881 (httpd)
Status: "Processing requests..."
CGroup: /system.slice/httpd.service
├─2881 /usr/sbin/httpd -DFOREGROUND
├─2884 /usr/sbin/httpd -DFOREGROUND
├─2885 /usr/sbin/httpd -DFOREGROUND
├─2886 /usr/sbin/httpd -DFOREGROUND
├─2887 /usr/sbin/httpd -DFOREGROUND
└─2888 /usr/sbin/httpd -DFOREGROUND
Apr 28 17:21:30 tecmint systemd[1]: Starting The Apache HTTP Server...
Apr 28 17:21:30 tecmint httpd[2881]: AH00558: httpd: Could not reliably determine the server's fully q...ssage
Apr 28 17:21:30 tecmint systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
Catatan: Saat kita menggunakan perintah seperti start, restart, stop dan reload dengan systemctl, kita tidak akan mendapatkan output apa pun di terminal, satu-satunya perintah status yang akan mencetak output.
14. Cara mengaktifkan layanan dan mengaktifkan atau menonaktifkan layanan saat boot (layanan mulai otomatis saat boot sistem).
systemctl is-active httpd.service
systemctl enable httpd.service
systemctl disable httpd.service
15. Cara menutupi (membuat tidak mungkin untuk memulai) atau membuka kedok layanan (httpd.service).
systemctl mask httpd.service
ln -s '/dev/null' '/etc/systemd/system/httpd.service'
systemctl unmask httpd.service
rm '/etc/systemd/system/httpd.service'
16. Cara Membunuh layanan menggunakan perintah systemctl.
systemctl kill httpd
systemctl status httpd
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: failed (Result: exit-code) since Tue 2015-04-28 18:01:42 IST; 28min ago
Main PID: 2881 (code=exited, status=0/SUCCESS)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec"
Apr 28 17:37:29 tecmint systemd[1]: httpd.service: Got notification message from PID 2881, but recepti...bled.
Apr 28 17:37:29 tecmint systemd[1]: httpd.service: Got notification message from PID 2881, but recepti...bled.
Apr 28 17:37:39 tecmint systemd[1]: httpd.service: Got notification message from PID 2881, but recepti...bled.
Apr 28 17:37:39 tecmint systemd[1]: httpd.service: Got notification message from PID 2881, but recepti...bled.
Apr 28 17:37:49 tecmint systemd[1]: httpd.service: Got notification message from PID 2881, but recepti...bled.
Apr 28 17:37:49 tecmint systemd[1]: httpd.service: Got notification message from PID 2881, but recepti...bled.
Apr 28 17:37:59 tecmint systemd[1]: httpd.service: Got notification message from PID 2881, but recepti...bled.
Apr 28 17:37:59 tecmint systemd[1]: httpd.service: Got notification message from PID 2881, but recepti...bled.
Apr 28 18:01:42 tecmint systemd[1]: httpd.service: control process exited, code=exited status=226
Apr 28 18:01:42 tecmint systemd[1]: Unit httpd.service entered failed state.
Hint: Some lines were ellipsized, use -l to show in full.
Kontrol dan Kelola Titik Pemasangan menggunakan Systemctl
17. Cantumkan semua titik pemasangan sistem.
systemctl list-unit-files --type=mount
UNIT FILE STATE
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
18. Bagaimana cara saya me-mount, unmount, remount, memuat ulang titik mount sistem dan juga memeriksa status titik mount pada sistem?
systemctl start tmp.mount
systemctl stop tmp.mount
systemctl restart tmp.mount
systemctl reload tmp.mount
systemctl status tmp.mount
tmp.mount - Temporary Directory
Loaded: loaded (/usr/lib/systemd/system/tmp.mount; disabled)
Active: active (mounted) since Tue 2015-04-28 17:46:06 IST; 2min 48s ago
Where: /tmp
What: tmpfs
Docs: man:hier(7)
http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
Process: 3908 ExecMount=/bin/mount tmpfs /tmp -t tmpfs -o mode=1777,strictatime (code=exited, status=0/SUCCESS)
Apr 28 17:46:06 tecmint systemd[1]: Mounting Temporary Directory...
Apr 28 17:46:06 tecmint systemd[1]: tmp.mount: Directory /tmp to mount over is not empty, mounting anyway.
Apr 28 17:46:06 tecmint systemd[1]: Mounted Temporary Directory.
19. Cara mengaktifkan, mengaktifkan, atau menonaktifkan titik pemasangan pada saat boot (pemasangan otomatis saat boot sistem).
systemctl is-active tmp.mount
systemctl enable tmp.mount
systemctl disable tmp.mount
20. Cara menutupi (sehingga tidak mungkin untuk memulai) atau membuka kedok titik pemasangan di Linux.
systemctl mask tmp.mount
ln -s '/dev/null' '/etc/systemd/system/tmp.mount'
systemctl unmask tmp.mount
rm '/etc/systemd/system/tmp.mount'
Kontrol dan Kelola Soket menggunakan Systemctl
21. Cantumkan semua soket sistem yang tersedia.
systemctl list-unit-files --type=socket
UNIT FILE STATE
dbus.socket static
dm-event.socket enabled
lvm2-lvmetad.socket enabled
rsyncd.socket disabled
sshd.socket disabled
syslog.socket static
systemd-initctl.socket static
systemd-journald.socket static
systemd-shutdownd.socket static
systemd-udevd-control.socket static
systemd-udevd-kernel.socket static
11 unit files listed.
22. Bagaimana cara memulai, memulai ulang, menghentikan, memuat ulang, dan memeriksa status soket (contoh: cups.socket) di Linux.
systemctl start cups.socket
systemctl restart cups.socket
systemctl stop cups.socket
systemctl reload cups.socket
systemctl status cups.socket
cups.socket - CUPS Printing Service Sockets
Loaded: loaded (/usr/lib/systemd/system/cups.socket; enabled)
Active: active (listening) since Tue 2015-04-28 18:10:59 IST; 8s ago
Listen: /var/run/cups/cups.sock (Stream)
Apr 28 18:10:59 tecmint systemd[1]: Starting CUPS Printing Service Sockets.
Apr 28 18:10:59 tecmint systemd[1]: Listening on CUPS Printing Service Sockets.
23. Cara mengaktifkan soket dan mengaktifkan atau menonaktifkan saat boot (soket mulai otomatis saat boot sistem).
systemctl is-active cups.socket
systemctl enable cups.socket
systemctl disable cups.socket
24. Cara menutupi (sehingga tidak mungkin untuk memulai) atau membuka kedok soket (cups.socket).
systemctl mask cups.socket
ln -s '/dev/null' '/etc/systemd/system/cups.socket'
systemctl unmask cups.socket
rm '/etc/systemd/system/cups.socket'