Linux Run Level (Fedora 16)
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 |
[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.
{ 0 komentar... Views All / Send Comment! }
Posting Komentar