DEV Community

Rizky Amrullah
Rizky Amrullah

Posted on

Belajar Linux OS - #4 Daemons

(baca: "Day-mens"), adalah bagian dari OS juga, dan daemons adalah nama lain dari process-process yang berjalan/bekerja di belakang layar (background).

Contohnya, ketika kita login atau ketika kita mengetikkan perintah print, login atau printing service itu jalan sebagai sebuah daemon.

Di Linux, kita bisa liat daftar process-process yang sedang berjalan dengan mengetikkan perintah ps -ef. Tiap process punya identitas uniknya masing-masing yang disebut PID yang berarti Process IDentifier.

Salah satu process yang krusial di Linux adalah init process, yang bisa dibilang sebagai kakek dari semua process-process, kenapa kok dibilang kakek? Karena setiap process yang jalan, kecuali kernel, adalah (child) turunan dari init process ini dan bisa dilacak ulang sampai init. Kernelnya sendiri jalan di PID 0 sedangkan init process jalan di PID 1.

Secara teknis, sebuah daemon adalah parent process yang mulai berjalan ketika boot OS telah diinisialisasi dan booting. Jadi daemons telah dikonfigurasi untuk jalan dari /etc/initd yang mana initd berarti initial daemons. Ini berarti kalau initd biasanya punya PPID (Parent Process IDentifier) 1. Jadi kita bisa cari daemons dengan cara mencari process yang memiliki PPID 1.

Coba ketik perintah ps -ef | awk '$3 == 1'.

$ ps -ef | awk '$3 == 1'
root       278     1  0 14:29 ?        00:00:00 /lib/systemd/systemd-udevd
root       552     1  0 14:29 ?        00:00:00 /sbin/dhclient -1 -v -pf /run/dhclient.ens3.pid -lf /var/lib/dhcp/dhclient.ens3.leases -I -df /var/lib/dhcp/dhclient6.ens3.leases ens3
root       603     1  0 14:29 ?        00:00:00 /sbin/rpcbind -f -w
root       627     1  0 14:29 ?        00:00:00 /usr/sbin/cron -f
syslog     632     1  0 14:29 ?        00:00:00 /usr/sbin/rsyslogd -n
message+   634     1  0 14:29 ?        00:00:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
root       646     1  0 14:29 ?        00:00:00 /lib/systemd/systemd-logind
root       648     1  0 14:29 ?        00:00:00 /usr/lib/accountsservice/accounts-daemon
root       703     1  0 14:29 ?        00:00:00 /usr/sbin/irqbalance --pid=/var/run/irqbalance.pid
root       738     1  0 14:29 ?        00:00:00 /usr/sbin/sshd -D
root       739     1  0 14:29 ?        00:00:00 /usr/bin/containerd
root       754     1  0 14:29 tty1     00:00:00 /sbin/agetty --noclear tty1 linux
root       760     1  0 14:29 ttyS0    00:00:00 /sbin/agetty --keep-baud 115200 38400 9600 ttyS0 vt220
ntp        768     1  0 14:29 ?        00:00:00 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 109:116
root       796     1  0 14:29 ?        00:00:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root      1057     1  0 14:32 ?        00:00:00 /lib/systemd/systemd --user
Enter fullscreen mode Exit fullscreen mode

Ketika kita jalanin perintah ps -ef, kita akan melihat semua process pada layar kita seperti contoh diatas.
Kolom kedua menunjukkan Process ID (PID) dan kolom ketiga menunjukkan Parent ID. Jadi perintah awk disini akan fokus pada kolom ketiga (ditandai dengan $3) dan akan mengecek apakah PPID sama dengan (==) 1, yang mana PPID 1 adalah PPID untuk daemons.

Discussion (0)