Melihat service yang dijalankan saat startup pada Linux
Daftar Isi
Walau bisa dikatakan saya sudah lebih paham dalam setting server Linux tapi ternyata masih ada hal – hal baru yang bisa dipelajari. Kali ini saya dapat sedikit koreksi mengenai hal sederhana, yakni bagaimana cara melihat program atau service apa saja yang aktif dalam proses startup Linux. Ternyata selama ini saya salah paham atau minimal kurang tepat dalam caranya. 🙂
Jadi kasusnya adalah untuk mengetahui service/daemon apa saja yang ikut dihidupkan saat booting sistem operasi Linux sebelumnya saya cuma menggunakan satu cara. Tapi sejak beralih dari SysV ke systemd iseng saja saya mencari informasi lagi dan ternyata malah apa yang saya lakukan sebelumnya kurang lengkap. Haha. 😀
SysV
Metode initsystem ini adalah yang lama dan sudah mulai digantikan. Tapi karena pada dasarnya Linux yang digunakan dalam server mengutamakan kestabilan dibandingkan fitur maka masih sangat lazim digunakan. Distro Linux yang masih menggunakannya: Debian 6 dan 7, Ubuntu dibawah 15.04 dan CentOS 6.
Pertama kita bisa melihat apa isi direktori inisialisasi sistemnya:
ls /etc/init.d/
Hasilnya akan seperti ini:
README hwclock.sh nginx single
apache2 killprocs nginx-debug skeleton
bind9 kmod plymouth ssh
bootlogs modules_dep.sh plymouth-log sudo
bootmisc.sh motd procps udev
checkfs.sh mountall-bootclean.sh quota udev-mtab
checkroot-bootclean.sh mountall.sh quotarpc umountfs
checkroot.sh mountdevsubfs.sh rc umountnfs.sh
cron mountkernfs.sh rc.local umountroot
dovecot mountnfs-bootclean.sh rcS urandom
dropbox mountnfs.sh reboot vesta
exim4 mtab.sh rmnologin vnstat
fail2ban mysql rsync vsftpd
halt networking rsyslog vzquota
hostname.sh newrelic-sysmond sendsigs wide-dhcpv6-client
Tambah satu lagi dengan melihat isi runlevel (tingkatan bagaimana service tersebut dijalankan) dan symbolic linknya:
ls /etc/rc*.d/
Ini hasilnya bisa panjang sekali dibedakan per tingkatannya:
/etc/rc0.d/:
K01urandom K04rsyslog K07umountfs K20exim4 K20vnstat K99fail2ban
K02plymouth K05hwclock.sh K09apache2 K20newrelic-sysmond K20vzquota README
K02quota K05umountnfs.sh K09halt K20nginx K21mysql
K03sendsigs K06networking K20dovecot K20vesta K85bind9
/etc/rc1.d/:
K04rsyslog K20exim4 K20vesta K21mysql K99fail2ban S01killprocs
K09apache2 K20newrelic-sysmond K20vnstat K80vsftpd README S01motd
K20dovecot K20nginx K20vzquota K85bind9 S01bootlogs S02single
--ada lanjutannya
Tapi ada satu cara lagi yang lebih sederhana dan mudah dipaham informasinya:
service --status-all
Akan muncul dengan rapi dalam bentuk daftar dan status servicenya:
[ + ] apache2
[ + ] bind9
[ - ] bootlogs
[ ? ] bootmisc.sh
[ ? ] checkfs.sh
[ ? ] checkroot-bootclean.sh
[ - ] checkroot.sh
[ + ] cron
[ + ] dovecot
[ + ] dropbox
[ + ] exim4
[ + ] fail2ban
[ - ] hostname.sh
[ ? ] hwclock.sh
[ ? ] killprocs
[ ? ] kmod
[ ? ] modules_dep.sh
[ - ] motd
[ ? ] mountall-bootclean.sh
[ ? ] mountall.sh
[ ? ] mountdevsubfs.sh
[ ? ] mountkernfs.sh
[ ? ] mountnfs-bootclean.sh
[ ? ] mountnfs.sh
[ ? ] mtab.sh
[ ? ] mysql
[ ? ] networking
[ + ] newrelic-sysmond
[ + ] nginx
[ + ] nginx-debug
[ ? ] plymouth
[ ? ] plymouth-log
[ - ] procps
[ - ] quota
[ - ] quotarpc
[ ? ] rc.local
[ - ] rmnologin
[ - ] rsync
[ + ] rsyslog
[ ? ] sendsigs
[ + ] ssh
[ - ] sudo
[ - ] udev
[ ? ] udev-mtab
[ ? ] umountfs
[ ? ] umountnfs.sh
[ ? ] umountroot
[ - ] urandom
[ + ] vesta
[ + ] vnstat
[ + ] vsftpd
[ ? ] vzquota
[ ? ] wide-dhcpv6-client
systemd
Inilah pengganti SysV dan sudah menjadi initsystem default pada CentOS 7, Debian 8, Ubuntu 15.10 keatas.
Langsung saja misal kita ingin mengetahui apa saja service yang dipanggil saat startup pada systemd:
systemctl list-unit-files --type=service
Informasi yang muncul akan seperti berikut:
UNIT FILE STATE
arp-ethers.service disabled
auditd.service enabled
[email protected] disabled
avahi-daemon.service enabled
blk-availability.service disabled
brandbot.service static
console-getty.service disabled
console-shell.service disabled
[email protected] static
cpupower.service disabled
crond.service enabled
csf.service enabled
cyrus-imapd.service disabled
dbus-org.freedesktop.Avahi.service enabled
dbus-org.freedesktop.hostname1.service static
dbus-org.freedesktop.locale1.service static
dbus-org.freedesktop.login1.service static
dbus-org.freedesktop.machine1.service static
dbus-org.freedesktop.network1.service invalid
dbus-org.freedesktop.NetworkManager.service enabled
dbus-org.freedesktop.nm-dispatcher.service enabled
dbus-org.freedesktop.timedate1.service static
--ada lanjutannya
Atau alternatifnya bisa mengeksekusi perintah berikut:
ls /lib/systemd/system/*.service /etc/systemd/system/*.service
Tampilannya akan mirip seperti ini:
/etc/systemd/system/dbus-org.freedesktop.Avahi.service
/etc/systemd/system/dbus-org.freedesktop.NetworkManager.service
/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service
/lib/systemd/system/arp-ethers.service
/lib/systemd/system/auditd.service
/lib/systemd/system/[email protected]
/lib/systemd/system/avahi-daemon.service
/lib/systemd/system/blk-availability.service
/lib/systemd/system/brandbot.service
/lib/systemd/system/console-getty.service
/lib/systemd/system/console-shell.service
/lib/systemd/system/[email protected]
/lib/systemd/system/cpupower.service
/lib/systemd/system/crond.service
/lib/systemd/system/csf.service
/lib/systemd/system/cyrus-imapd.service
/lib/systemd/system/dbus-org.freedesktop.hostname1.service
/lib/systemd/system/dbus-org.freedesktop.locale1.service
-- ada lanjutannya
Catatan saja. Ada sebagian hasil perintah saya potong karena terlalu panjang dan esensinya sudah didapatkan dari contohnya. Jadi tidak perlu diberikan secara lengkap. 🙂