Berita

Haruskah SysV Mati? Tulisan dari Pengembang Busybox Ini Layak Disimak

SysVSetelah berseluncur di dunia maya dan singgah sebentar di beberapa milistmilist proyek open source, ada satu tulisan yang sangat menarik dari pengembang Busybox mengenai sistem init, SysV.

Tulisan yang berjudul SysV init must die (SysV init harus mati) ini mengulas kelemahan-kelemahan yang ada di SysV. Tulisan ini tidak membandingkan SysV dengan systemd (Busybox justru berhenti mendukung systemd), tapi dengan runsvdir.

Beberapa kelemahan yang ia temukan:

  • Keanehan perilaku pengiriman sinyal ke init (signaling init). Reboot diinisiasi dengan pengiriman sinyal ke init, anehnya pengguna tidak bisa melakukan aktivitas lainnya tanpa harus mengirim sinyal ke init.

  • SysV memiliki respawn daemon yang bekerja dengan buruk.

  • SysV membawa respawn daemon di dalam programnya, yang seharusnya tidak perlu. Di GNU/Linux, saat sistem init mati akan terjadi kernel panic yang disusul dengan kematian sistem. Butuh kerja ekstra keras untuk memeriksa dan men-debug error di init tersebut.

  • dan lain sebagainya.

Setelah menyebutkan beberapa kelemahan init SysV, ia membeberkan bahwa runsvdir dan runsv bisa mengatasi masalah-masalah yang dimiliki SysV.

“runsvdir dir” dipakai untuk berpindah ke direktori dir dan menjalankan “runsv subdir” di setiap sub direktori. “runsv subdir” bertugas mencari berkas executable “run” di dalam sub direktori, dan akan menjalankannya bila tidak ada berkas dengan nama “down” di tempat tersebut. “run” hanya berisi kode shell exec blabla.

runsv menggunakan perintah “sv” untuk melakukan aktivitas-aktivitasnya, seperti “sv s dir1 dir2” untuk melihat status service di dir1 dan dir2, “sv d dir” untuk menghentikan (stop) service, “sv u dir” untuk menjalankan service dan mengijinkannya direstart, dll.

Beberapa contoh nyata perintah sv di antaranya:

Untuk menghentikan semua service dan hanya getty yang perlu direstart, perintahnya

# cd /var/service
# sv d *
# sv u getty*

Untuk menjalankan GNOME Display Manager:

# mkdir /var/service/xdm

Lalu buat berkas “run” yang berisi:

#!/bin/sh
exec gdm -nodaemon

Penjelasan mengenai runsvdir ini bisa di baca di tulisan ini.

Menarik bukan? Anda sudah mencoba? Silakan berikan kesannya di kolom komentar di bawah ini.

Ramdziana adalah seorang narablog, pecinta kode, penggemar open source, pengguna GNU/Linux, dan penggemar Sherlock Holmes. Ikuti akun Twitter/Sebangsa @ramdziana
slot iklan

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to top