Dapatkan Tahu Linux: Direktori /etc/init.d

Jika anda menggunakan Linux, anda kemungkinan besar telah mendengar tentang direktori init.d. Tapi apa sebenarnya direktori ini? Ia akhirnya melakukan satu perkara tetapi ia melakukan satu perkara untuk keseluruhan sistem anda, jadi init.d sangat penting. Direktori init.d mengandungi beberapa permulaan / hentikan skrip untuk pelbagai perkhidmatan pada sistem anda. Segalanya dari acpid hingga x11-common dikawal dari direktori ini. Sudah tentu ia tidak begitu mudah.

Jika anda melihat direktori / etc anda akan mendapati direktori yang dalam bentuk rc # d (Dimana # adalah nombor mencerminkan tahap permulaan tertentu - dari 0 hingga 6). Dalam setiap direktori ini terdapat beberapa skrip lain yang mengawal proses. Skrip ini sama ada bermula dengan "K" atau "S". Semua skrip "K" dijalankan sebelum skrip "S". Dan bergantung kepada di mana skrip terletak akan menentukan apabila skrip bermula. Antara direktori perkhidmatan sistem berfungsi bersama seperti mesin yang benar-benar minyak. Tetapi ada kalanya anda perlu memulakan atau menghentikan proses dengan bersih dan tanpa menggunakan perintah membunuh atau membunuh. Di sinilah direktori /etc/init.d berguna.

Sekarang jika anda menggunakan pengedaran seperti Fedora, anda mungkin mencari direktori ini dalam /etc/rc.d/init.d . Terlepas dari lokasi, ia berfungsi dengan tujuan yang sama.

Untuk mengawal mana-mana skrip dalam init.d secara manual, anda perlu mempunyai akses root (atau sudo). Setiap skrip akan dijalankan sebagai arahan dan struktur arahan akan kelihatan seperti:

/etc/init.d/command OPTION

Di mana arahan adalah arahan sebenar untuk dijalankan dan OPTION boleh menjadi salah satu daripada yang berikut:

  • mulakan
  • berhenti
  • Tambah nilai
  • mula semula
  • tambah kuasa

Selalunya anda akan menggunakan sama ada bermula, berhenti, atau dimulakan semula. Jadi jika anda mahu menghentikan rangkaian anda, anda boleh mengeluarkan arahan:

/etc/init.d/networking stop

Atau jika anda membuat perubahan pada rangkaian anda dan perlu memulakannya semula, anda boleh berbuat demikian dengan arahan berikut:

/etc/init.d/networking restart

Beberapa skrip init yang lebih umum dalam direktori ini ialah:

  • rangkaian
  • samba
  • apache2
  • ftpd
  • sshd
  • dovecot
  • mysql

Sudah tentu terdapat skrip yang lebih kerap digunakan dalam direktori anda - ia bergantung kepada apa yang telah anda pasang. Senarai di atas telah diambil dari pemasangan Ubuntu Server 8.10 supaya pemasangan desktop standard akan mempunyai skrip jenis rangkaian kurang.

Tetapi bagaimana dengan /etc/rc.local

Terdapat pilihan ketiga yang saya gunakan agak sedikit. Pilihan ini ialah skrip /etc/rc.local . Fail ini berjalan selepas semua skrip tahap init lain telah dijalankan, jadi selamat untuk meletakkan pelbagai arahan yang anda mahu dikeluarkan pada permulaan. Banyak kali saya akan meletakkan arahan pemasangan untuk perkara-perkara seperti nfs dalam skrip ini. Ini juga merupakan tempat yang baik untuk membuat skrip "penyelesaian masalah" masuk Sebagai contoh, apabila saya mempunyai mesin yang, atas sebab tertentu, samba sepertinya tidak mahu dimulakan. Malah semak semakan untuk memastikan daemon Samba ditetapkan untuk dimulakan pada boot. Jadi, bukannya menghabiskan masa saya di depan dengan ini saya hanya meletakkan garis:

/etc/init.d/samba mula

dalam skrip /etc/rc.local dan Samba bekerja seperti pesona. Akhirnya saya akan kembali dan masalah menembak isu ini.

Pemikiran Akhir

Linux adalah fleksibel. Linux sangat fleksibel, hampir tidak dapat dielakkan, banyak cara untuk menyelesaikan satu masalah. Memulakan perkhidmatan sistem adalah satu isu sedemikian. Dengan bantuan sistem /etc/init.d (serta /etc/rc.local ), anda boleh yakinkan perkhidmatan anda akan bermula.