Linux Run Level (Fedora 16)

Posted on Posted in GNU/Linux, Linux Networking

run level merupakan mode operasional dari suatu sistem operasi, umumnya digunakan pada sistem Unix Like. Aplikasi dan servis pada sistem Linux dikendalikan oleh run level. Beberapa run level dapat me-restart atau menshut down sistem. Beberapa juga dapat menjalankan sistem Linux tanpa fitur-fitur jaringan.

Berikut daftar run level pada sistem Linux :

Run level

Deskripsi

0

Halt atau shutdown

1

Single user Mode (untuk keperluan maintenance, backup, recovery)

2

Multiuser dengan beberapa fitur jaringan, network file system tidak dijalankan di run level ini.

3

Multiuser dengan semua fitur jaringan dijalankan

4

Dicadangkan (unused)

5

GUI dengan fitur jaringan

6

Reboot atau restart

Secara default, run level yang dijalankan umumnya adalah run level 5. Untuk mengetahui suatu sistem Linux sedang berjalan di run level mana, perintah yang dapat digunakan adalah sebagai berikut :

 [root@ilmujaringan ~]# who -r
         run-level 3  2012-07-03 15:22
 
[root@ilmujaringan ~]# who -r
         run-level 5  2012-07-03 15:23                   last=3

Awalnya konfigurasi Run level dapat dilihat pada file /etc/inittab dan dikendalikan oleh sysvinit. Namun untuk sistem Linux terbaru, konfigurasi run level dikendalikan oleh systemd. systemd merupakan sistem dan service manager pada sistem Linux yang mampu bekerja secara paralel untuk menjalankan service, daemon, proses, maupun proses mounting pada sistem.

Berikut perbandingan antara sysvinit dan systemd dalam menangani run level

Untuk berganti Run level, dapat digunakan perintah sebagai berikut :

 [root@ilmujaringan ~]# systemctl isolate multi-user.target

 

atau

 [root@ilmujaringan ~]# systemctl isolate graphical.target

 

atau

 [root@ilmujaringan ~]# systemctl isolate reboot.target

 

 

service

service merupakan aplikasi yang ditujukan untuk memberikan layanan (service) kepada beberapa user, misalnya web service yang ditujukan untuk memberikan layanan web, DHCP Service untuk memberikan layanan konfigurasi IP.

Pada sysvinit untuk menjalankan suatu service digunakan perintah seperti berikut :

 [root@ilmujaringan ~]# service squid start

 

atau

 [root@ilmujaringan ~]# /etc/init.d/squid start

Pada systemd, untuk menjalankan/menghentikan/memonitoring suatu service digunakan perintah seperti berikut :

[root@ilmujaringan ~]# systemctl start squid.service
[root@ilmujaringan ~]# systemctl status squid.service
squid.service – Sqid caching proxy
          Loaded: loaded (/lib/systemd/system/squid.service; disabled)
          Active: active (running) since Tue, 03 Jul 2012 15:51:41 +0800; 6s ago
         Process: 980 ExecStart=/usr/sbin/squid $SQUID_OPTS -f $SQUID_CONF (code=exited, status=0/SUCCESS)
        Main PID: 981 (squid)
          CGroup: name=systemd:/system/squid.service
                  â 981 /usr/sbin/squid -f /etc/squid/squid.conf
                  â 983 (squid-1) -f /etc/squid/squid.conf
                  â 984 (logfile-daemon) /var/log/squid/access.log
                  â 985 (unlinkd)
 
 
 
[root@ilmujaringan ~]# systemctl stop squid.service
[root@ilmujaringan ~]# systemctl status squid.service
squid.service – Sqid caching proxy
          Loaded: loaded (/lib/systemd/system/squid.service; disabled)
          Active: inactive (dead) since Tue, 03 Jul 2012 15:52:01 +0800; 5s ago
         Process: 989 ExecStop=/usr/sbin/squid -k shutdown -f $SQUID_CONF (code=exited, status=0/SUCCESS)
         Process: 980 ExecStart=/usr/sbin/squid $SQUID_OPTS -f $SQUID_CONF (code=exited, status=0/SUCCESS)
        Main PID: 981 (code=killed, signal=TERM)
          CGroup: name=systemd:/system/squid.service

 

 

Pada sysvinit, chkconfig digunakan untuk melakukan manajemen apakah suatu service akan dijalankan pada suatu run level. Contoh penggunaan chkconfig

[root@ilmujaringan ~]# chkconfig –list
Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.
dc_client        0:off   1:off   2:off   3:off   4:off   5:off   6:off
dc_server       0:off   1:off   2:off   3:off   4:off   5:off   6:off
netconsole    0:off   1:off   2:off   3:off   4:off   5:off   6:off
netfs                  0:off   1:off   2:on    3:on    4:on    5:on    6:off
network         0:off   1:off   2:off   3:off   4:off   5:off   6:off
sandbox         0:off   1:off   2:on    3:on    4:on    5:on    6:off

 

Dengan systemd, untuk melihat apakah suatu service dijalankan di suatu run level, dapat digunakan perintah sebagai berikut :

[root@ilmujaringan ~]# systemctl list-unit-files –type=service
UNIT FILE                 STATE
abrt-ccpp.service         enabled
abrt-oops.service         enabled
abrt-vmcore.service       enabled
abrtd.service             enabled
accounts-daemon.service   disabled
acpid.service             enabled
arp-ethers.service        enabled
atd.service               enabled
auditd.service            enabled
autovt@.service           disabled
avahi-daemon.service      enabled
bluetooth.service         enabled

 

Sedangkan untuk keseluruhan system dan service dapat digunakan perintah sebagai berikut :

[root@ilmujaringan ~]# systemctl list-unit-files
UNIT FILE                 STATE
proc-sys…misc.automount static
dev-hugepages.mount       static
dev-mqueue.mount          static
media.mount               static
proc-fs-nfsd.mount        static
proc-sys…fmt_misc.mount static
sys-fs-f…nections.mount static
sys-kernel-config.mount   static
sys-kernel-debug.mount    static
sys-kernel-security.mount static
var-lib-…c_pipefs.mount static
var-lock.mount            static
var-run.mount             static
systemd-…d-console.path static
systemd-…-plymouth.path static
systemd-…word-wall.path static
abrt-ccpp.service         enabled
abrt-oops.service         enabled
abrt-vmcore.service       enabled
abrtd.service             enabled
accounts-daemon.service   disabled
acpid.service             enabled
arp-ethers.service        enabled
atd.service               enabled

 

Untuk melihat suatu service dijalankan atau tidak di run level yang sedang berjalan, maka dapat digunakan perintah sebagai berikut :

[root@ilmujaringan ~]# systemctl list-unit-files –type=service | grep squid
squid.service          enabled

 

Untuk mencegah suatu service dijalankan pada saat sistem akan boot awal, dapat digunakan perintah seperti berikut :

 [root@ilmujaringan ~]# systemctl disable squid.service
rm ‘/etc/systemd/system/multi-user.target.wants/squid.service’

 

Sedangkan untuk membuat sebuah service selalu dijalankan pada saat setiap kali sistem boot, dapat digunakan perintah sebagai berikut:

[root@ilmujaringan ~]# systemctl enable squid.service
ln -s ‘/lib/systemd/system/squid.service’ ‘/etc/systemd/system/multi-user.target.wants/squid.service’

 

Untuk melihat service-service yang akan dijalankan pada suatu run level (misalnya untuk multi-user run level) dapat juga dengan melihat isi direktori /etc/systemd/system/multi-user.target.wants/, dengan perintah sebagai berikut :

 

[root@ilmujaringan ~]# ls /etc/systemd/system/multi-user.target.wants/
abrt-ccpp.service     mcelog.service          remote-fs.target   sshd-keygen.service
abrtd.service         mdmonitor.service       rpcbind.service    sshd.service
abrt-oops.service     NetworkManager.service  rsyslog.service
abrt-vmcore.service   nfs-idmap.service       sm-client.service
acpid.service         nfs-lock.service        squid.service
 
[root@ilmujaringan ~]# systemctl disable squid.service
rm ‘/etc/systemd/system/multi-user.target.wants/squid.service’
              
[root@ilmujaringan ~]# systemctl disable rpcbind.service
rm ‘/etc/systemd/system/multi-user.target.wants/rpcbind.service’
rm ‘/etc/systemd/system/sockets.target.wants/rpcbind.socket’
 
[root@ilmujaringan ~]# ls /etc/systemd/system/multi-user.target.wants/
abrt-ccpp.service     crond.service       NetworkManager.service  rsyslog.service
abrtd.service         irqbalance.service  nfs-idmap.service       sm-client.service
abrt-oops.service     mcelog.service      nfs-lock.service        sshd-keygen.service
abrt-vmcore.service   mdmonitor.service   remote-fs.target        sshd.service

 

 

Default run level

systemd menggunakan symlinks untuk menentukan run level default yang akan dijalankan. Untuk mengganti default run level, symlinks tersebut harus dihapus, dapat digunakan perintah sebagai berikut :

[root@ilmujaringan ~]# rm /etc/systemd/system/default.target
rm: remove symbolic link `/etc/systemd/system/default.target’? y

 

Untuk menjadikan run level 5 sebagai default run level, dapat digunakan perintah sebagai berikut :

[root@ilmujaringan ~]# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
 
 
Sedangkan untuk menjadikan run level 3 sebagai default run level, dapat digunakan perintah sebagai berikut :
 
[root@ilmujaringan ~]# ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

Setiap pergantian default run level harus dilakukan penghapusan file /etc/systemd/system/default.target. Jangan menggunakan run level 0 dan run level 6 sebagai default run level. Untuk sistem Linux yang sudah menggunakan systemd, konfigurasi default run level tidak ada lagi pada file /etc/inittab.

 

.

Share Button

Leave a Reply

Your email address will not be published. Required fields are marked *

*