Mengenal Linux: Direktori /etc/init.d

Jika Anda menggunakan Linux, kemungkinan besar Anda pernah mendengar tentang direktori init.d. Tapi apa sebenarnya yang dilakukan direktori ini? Ini akhirnya melakukan satu hal tetapi itu melakukan satu hal untuk seluruh sistem Anda, jadi init.d sangat penting. Direktori init.d berisi sejumlah skrip start / stop untuk berbagai layanan di sistem Anda. Segala sesuatu dari acpid hingga x11-common dikendalikan dari direktori ini. Tentu saja tidak sesederhana itu.

Jika Anda melihat direktori / etc, Anda akan menemukan direktori yang berada dalam bentuk rc # .d (Di mana # adalah angka yang mencerminkan tingkat inisialisasi tertentu - dari 0 hingga 6). Di dalam masing-masing direktori ini terdapat sejumlah skrip lain yang mengontrol proses. Script ini akan dimulai dengan "K" atau "S". Semua skrip "K" dijalankan sebelum skrip "S". Dan tergantung di mana skrip berada akan menentukan kapan skrip memulai. Di antara direktori, layanan sistem bekerja bersama seperti mesin yang diminyaki dengan baik. Tetapi ada kalanya Anda perlu memulai atau menghentikan proses dengan bersih dan tanpa menggunakan perintah kill atau killall. Di situlah direktori /etc/init.d berguna.

Sekarang jika Anda menggunakan distribusi seperti Fedora Anda mungkin menemukan direktori ini di /etc/rc.d/init.d . Terlepas dari lokasi, itu melayani tujuan yang sama.

Untuk mengontrol skrip apa pun di init.d secara manual Anda harus memiliki akses root (atau sudo). Setiap skrip akan dijalankan sebagai perintah dan struktur perintah akan terlihat seperti:

/etc/init.d/command OPTION

Di mana perintah adalah perintah aktual untuk dijalankan dan OPTION dapat menjadi salah satu dari yang berikut:

  • mulai
  • berhenti
  • memuat ulang
  • mengulang kembali
  • pemuatan paksa

Paling sering Anda akan menggunakan mulai, berhenti, atau restart. Jadi, jika Anda ingin menghentikan jaringan Anda, Anda dapat mengeluarkan perintah:

/etc/init.d/networking berhenti

Atau jika Anda membuat perubahan pada jaringan Anda dan perlu me-restart itu, Anda bisa melakukannya dengan perintah berikut:

/etc/init.d/networking restart

Beberapa skrip init yang lebih umum dalam direktori ini adalah:

  • jaringan
  • samba
  • apache2
  • ftpd
  • sshd
  • tempat perlindungan merpati
  • mysql

Tentu saja mungkin ada skrip yang lebih sering digunakan dalam direktori Anda - tergantung pada apa yang Anda instal. Daftar di atas diambil dari instalasi Ubuntu Server 8.10 sehingga instalasi desktop standar akan memiliki beberapa skrip tipe jaringan yang lebih sedikit.

Tapi bagaimana dengan /etc/rc.local

Ada opsi ketiga yang saya gunakan cukup sedikit. Opsi ini adalah skrip /etc/rc.local . File ini berjalan setelah semua skrip init level lain berjalan, jadi aman untuk meletakkan berbagai perintah yang ingin Anda keluarkan saat startup. Banyak kali saya akan menempatkan instruksi pemasangan untuk hal-hal seperti nfs dalam skrip ini. Ini juga merupakan tempat yang baik untuk menempatkan skrip "pemecahan masalah". Misalnya, setelah saya memiliki mesin yang, untuk beberapa alasan, samba sepertinya tidak mau memulai. Bahkan memeriksa untuk memastikan daemon Samba telah diatur untuk menginisialisasi saat boot. Jadi alih-alih menghabiskan seluruh waktu saya di muka dengan ini, saya hanya menempatkan garis:

/etc/init.d/samba mulai

dalam script /etc/rc.local dan Samba bekerja seperti pesona. Akhirnya saya akan kembali dan memecahkan masalah ini.

Pikiran terakhir

Linux fleksibel. Linux sangat fleksibel sehingga hampir, pasti, banyak cara untuk memecahkan satu masalah. Memulai layanan sistem adalah salah satu masalah tersebut. Dengan bantuan sistem /etc/init.d (dan /etc/rc.local ) Anda cukup yakin bahwa layanan Anda akan dimulai.