Saya pikir saya membaca sesuatu beberapa waktu lalu tentang ini, tetapi saya tidak ingat bagaimana hal itu dilakukan. Pada dasarnya, saya memiliki layanan di /etc/init.d
mana saya ingin memulai secara otomatis saat boot. Saya ingat itu ada hubungannya dengan menghubungkan skrip ke dalam /etc/rc.d
direktori, tapi saya tidak ingat saat ini. Apa perintah untuk ini?
Saya percaya saya menggunakan turunan Fedora / CentOS.
fedora
boot
init-script
Naftuli Kay
sumber
sumber
/etc/init
,/etc/init.d
,/etc/rc.d
,/etc/rc.local
dan beberapa lagi yang dimilikinya?Jawaban:
Jika Anda menggunakan sistem berbasis Red Hat, seperti yang Anda sebutkan, Anda dapat melakukan hal berikut:
/etc/init.d
(misalnya/etc/init.d/myscript
). Script harus memiliki format berikut:Formatnya cukup standar dan Anda dapat melihat skrip yang ada di
/etc/init.d
. Anda kemudian dapat menggunakan skrip seperti begitu/etc/init.d/myscript start
atauchkconfig myscript start
. Theckconfig
halaman manual menjelaskan header dari script:Contoh mulai, berhenti dan kode status menggunakan fungsi pembantu yang didefinisikan dalam
/etc/init.d/functions
Aktifkan skrip
Periksa skrip memang diaktifkan - Anda akan melihat "pada" untuk tingkat yang Anda pilih.
sumber
Anda menguji, apa runlevel mesin Anda biasanya mulai.
Seringkali ini 5 atau 2 - ada berbagai konvensi, tetapi tidak ada yang benar-benar ditetapkan, afaik. Ubuntu menggunakan 2, sedangkan distribusi sebelumnya yang saya gunakan selalu digunakan
Kemudian Anda membuat symlink dari init-script Anda, mungkin
/etc/init.d/foobar
ke/etc/rc2.d/SXYfoobar
S berarti 'Mulai skrip ini di runlevel ini (di sini: 2). XY adalah angka desimal dua digit, yang relevan untuk urutan, skrip dimulai.
Jika Anda bergantung pada skrip S45barfoo untuk dijalankan sebelum Anda, dan S55foofoo bergantung pada skrip Anda, Anda akan memilih xy antara 45 dan 55. Untuk angka yang sama urutan boot tidak ditentukan.
Sementara Ubuntu beralih (beralih) ke prosedur startup lain, disebut
upstart
.Dan perhatikan: Tidak selalu tautan tautan ke
/etc/rcX.d
- kadang-kadang itu/etc/init/rcX.d
atau sesuatu yang serupa, tetapi harus mudah ditemukan, di suatu tempat di bawah / etc.Jika Anda ingin memulai sesuatu di akhir skrip mulai,
/etc/rc.local
akan menjadi file yang harus dicari, tetapi jika itu tergantung pada X11 sudah berjalan, Anda mungkin mencari opsi autostart dari lingkungan desktop Anda, atau/etc/X11/Xsession.d/
dengan pola yang sama seperti yang dijelaskan atas.Jika Anda bergantung pada jaringan yang berada di atas, ada direktori terpisah (if-up.d), dan untuk perangkat yang dipasang seperti USB-drive eksternal
/etc/udev/rules.d/
.sumber
update-rc.d
?Seperti yang ditanyakan Naftuli Tzvi Kay tentang Debian di atas: Dimulai dengan Debian 6, skrip Anda harus berisi tajuk LSB (Linux Standards Base) yang menunjukkan dependensi dan kemampuannya ( lihat halaman wiki debian ).
Jika ada header LSB, Anda dapat menggunakan
insserv
untuk memasukkan skrip Anda dalam proses boot ( lihat halaman wiki debian lain ).sumber