Melihat service yang dijalankan saat startup pada Linux

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 
autovt@.service                             disabled
avahi-daemon.service                        enabled 
blk-availability.service                    disabled
brandbot.service                            static  
console-getty.service                       disabled
console-shell.service                       disabled
container-getty@.service                    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/autovt@.service
/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/container-getty@.service
/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. 🙂

Tinggalkan komentar