Merasakan init-script

Initscript : script that executes inittab commands.When the shell script /etc/initscript is present, init will use it to execute the commands from inittab. This script can be used to set things like ulimit and umask default values for every process.[http://linux.die.net/man/5/initscript].

Daftar RunLevel di beberapa distro linux:

  • Debian: runlevel 0 –>halt, runlevel 1 –> single user, runlevel 2, 3, 4, 5 –>  multiuser dengan diplay manager, runlevel 6 –> reboot sistem.
  • Redhat: runlevel 0 –> halt, runlevel 1 –> single user, runlevel 2 –> dapat dikustom, runlevel 3 –> multiuser tanpa display manager, runlevel 4 –> dapat dikostum, runlevel 5 –> multiuser dengan display manager, runlevel 6 –> reboot sistem.
  • SUSE: runlevel 0 –> halt, runlevel 1 –> single user, runlevel 2 –> multiuser tanpa jaringan, runlevel 3 –> multiuser tanpa display manager, runlevel 4 –> bisa dikustom, runlevel 5 –> multiuser dnegan display manager, runlevel 6 –> sistem reboot.
  • Slackware: runlevel 0 –> halt, runlevel 1 –> single user, runlevel 2,3 –> multiuser tanpa display manager, runlevel 4 –> multiuser dengan display manager, runlevel 6 –> reboot sistem.

System V >< System BSD

System V lebih banyak digunakan oleh distro-distro linux dibandingkan dengan system BSD, hanya slackware (turunannya) dan arch yang kompatible dengan System-BSD.

System-BSD

  • Menjalankan semua init shell script yang ada di dalam folder /etc/rcX.d init/rc shell script tersebut mengatur apa yang harus di initialization saat sistem pertama kali init dijalankan. Dimana X pada rcX.d menunjukkan nomor RunLevel.

bash-3.1$ ls /etc/rc.d/
init.d rc.dnsmasq rc.modules-2.6.24.5 rc.sysvinit
rc.0  rc.font.new  rc.modules-2.6.24.5-smp  rc.udev
rc.4  rc.fuse rc.mysqld rc.vboxdrv
rc.6 rc.gpm rc.nfsd rc.vboxnet
rc.K rc.hald rc.ntpd rc.wireless
rc.M rc.httpd rc.pcmcia rc.wireless.conf
rc.S rc.inet1 rc.rpc rc.yp
rc.acpid rc.inet1.conf rc.samba rc0.d
rc.alsa rc.inet2 rc.saslauthd rc1.d
rc.atalk rc.inetd rc.sendmail rc2.d
rc.bind rc.ip_forward rc.serial rc3.d
rc.bluetooth rc.local rc.snmpd rc4.d
rc.bluetooth.conf rc.messagebus rc.sshd rc5.d
rc.cups rc.modules rc.syslog rc6.d

  • Kelebihan : Sederhana dan mudah di edit secara manual.
  • Kekurangan : Jika program yang akan dijalankan tergantung kepada program lain setelah proses boot, maka pengaturannya akan rumit.

System-V

  • System-V terlebih dahulu memeriksa file /etc/inittab untuk mengetahui default runlevel.
  • Kelebihan: Fleksibel dan skalabel
  • Kekurangan: Kompleks

Cara Membuat Init Script

  • Buat init script dengan menggunakan bash/shell.

Contoh bash/shell skrip rc.acpid:

#!/bin/sh
# Start/stop/restart acpid.

# Start acpid:
acpid_start() {
if [ -x /usr/sbin/acpid -a -d /proc/acpi ]; then
echo “Starting ACPI daemon: /usr/sbin/acpid”
/usr/sbin/acpid
fi
}

# Stop acpid:
acpid_stop() {
killall acpid
}

# Restart acpid:
acpid_restart() {
acpid_stop
sleep 1
acpid_start
}

case “$1” in
‘start’)
acpid_start
;;
‘stop’)
acpid_stop
;;
‘restart’)
acpid_restart
;;
*)
echo “usage $0 start|stop|restart”
esac

  • Berikan hak eksekusi ke file tersebut “chmod +x nama-skrip”. Contoh: chmod +x rc.apcid
  • Copy bash/shell skrip yang telah dibuat ke:

Untuk System-BSD: /etc/rc.d/rc.nama-skrip

Untuk System-V: /etc/init.d/nama-skrip

  • Agar skrip tersebut dijalankan pada runlevel yang diinginkan, lakukan:

System-BSD: edit file runlevel yang diinginkan (misal: /etc/rc.d/rc.4) dan tambahkan baris untuk menjalankan skrip /etc/rc.d/rc.nama-skrip

Contoh: Potongan skrip /etc/rc.d/rc.6

# Run any local shutdown scripts:
if [ -x /etc/rc.d/rc.local_shutdown ]; then
/etc/rc.d/rc.local_shutdown stop
fi

# Stop the Apache web server:
if [ -x /etc/rc.d/rc.httpd ]; then
/etc/rc.d/rc.httpd stop
fi

# Stop the MySQL database:
if [ -r /var/run/mysql/mysql.pid ]; then
. /etc/rc.d/rc.mysqld stop
fi

System-V: dengan menggunakan tool update-rc.d.

Contoh Penggunaan tool update-rc.d

  • Menambahkan service init dengan prioritas default: update-rc.d nama_skrip.bash defaults.
  • # update-rc.d apache2 defaults

  • Menambahkan service init dengan prioritas kustom: update-rc.d nama_skrip.bassh defaults urutan_prioritas
  • # update-rc.d apache2 defaults 91

  • Menambahkan service init dengan membedakan prioritas Start dan Kill: update-rc.d nama_skrip.bash defaults prioritas_Start prioritas_Kill
  • # update-rc.d apache2 defaults 20 80

  • Menambahkan service init dengan membedakan prioritas Start, Kill dan runlevel skrip service tersebut dijalankan: update-rc.d nama_skrip.bash start prioritas_Start kumpulan_runlevel_Start . stop prioritas_Kill kumpulan_runlevel_Kill .
  • # update-rc.d apache2 start 20 2 3 4 5 . stop 80 0 1 6 .

  • Membuang init service: update-rc.d -f nama_skrip.bash remove
  • # update-rc.d -f apache2 remove

Init Style lainnya:

SystemStarter, Initng, Upstart, Service Management Facility, BootScripts in GoboLinux, Mudur in Pardus Linux,  eINIT, cinit, twsinit,  minit, OpenRC.

One thought on “Merasakan init-script

Silahkan Komentar ... !

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s