Anda dapat mengubah urutan dengan mengganti nama symlink di bawah /etc/rcX.d/ di mana x akan menjadi level run Anda.
Anda akan melihat banyak file dimulai dengan Sxx atau Kxx. Tautan S dilacak saat startup sedangkan yang K diuraikan untuk dimatikan. Xx di sini mewakili urutan.
Tetapi urutan ini diatur karena suatu alasan, jadi berhati-hatilah saat mengubahnya. Sebagai contoh. ntpd harus dimulai hanya setelah subsistem jaringan diinisialisasi.
Alih-alih melakukannya secara manual, seperti yang disarankan dalam jawaban lain, Anda juga dapat mengubah skrip init. Cukup tambahkan baris seperti itu ke header:
# chkconfig: 35 90 10
Ini akan memerintahkan chkconfiguntuk menambahkan layanan ke runlevel 3 dan 5, dengan posisi awal 90 dan posisi membunuh 10.
Ini. Benar-benar ini. Jika Anda secara manual mengganti nama symlinks Anda akan mendapatkan kejutan jika seseorang datang dan berlarichkconfig off servicename && chkconfig on servicename
batfastad
Bekerja seperti pesona. Saya perlu mengkonfigurasi dependensi antara mysqld dan wadah servlet. Saya tidak bisa mengetahui posisi awal mysqld, jadi saya mengkonfigurasi posisi awal servlet untuk 99 dan berfungsi dengan baik, mysqld memulai lebih dulu. Terima kasih.
jpangamarca
7
Anda ingin membaca sedikit tentang runlevels dan direktori rc.d Anda . Di dalam direktori rc.d Anda dapat menemukan tautan S dan K, seperti S20apache K10apache, yang pada dasarnya adalah apa yang memerintahkan startup / shutdown skrip.
Ada beberapa perubahan yang dibuat pada arsitektur ini, tetapi sebagian besar linux masih menggunakannya.
Saya kagum sebagian besar distro masih menggunakan sistem ini; sistem yang lebih baik seperti rcordertelah ada untuk sementara waktu.
Chris S
Saya agak iri solaris svc, tetapi bisa melakukannya tanpa xml stuff
coredump
Ini tepat. Namun, tergantung pada distro Anda, Anda mungkin memiliki cara berbeda untuk mengubah nilai ini - jadi bacalah dokumentasi spesifik untuk distro Anda.
Andrew M.
1
Beberapa distribusi, seperti Ubuntu, menggunakan Upstart ( Wikipedia ).
Dijeda sampai pemberitahuan lebih lanjut.
7
Jika Anda telah tiba di sini, kemungkinan Anda memiliki dua layanan di mana satu tergantung pada yang lain tetapi, karena mereka mulai dalam urutan yang salah, yang dengan ketergantungan tidak memulai. Saran tentang pengeditan symlink bersifat informatif, dalam hal menggambarkan bagaimana urutan startup berjalan, dan akan bekerja dengan baik sampai seseorang melakukan "chkconfig on" pada layanan Anda di mana titik symlink akan dibuat kembali seperti semula. Sungguh, Anda ingin menangani masalah di tingkat skrip init, yang sebenarnya jauh lebih tidak berantakan untuk dilakukan. Ini juga akan konsisten di berbagai runlevel. Anda mungkin tidak perlu menambahkan baris "# chkconfig" seperti yang disarankan dalam jawaban 4 karena mungkin sudah ada baris serupa di sana.
Saya akan menggunakan contoh server yang menjalankan Openldap (slapd) dengan backend database MySQL (mysqld). Mengkonfigurasi pasangan itu, dan mengapa Anda mungkin ingin, adalah cerita lain.
Saat boot, Openldap gagal memulai karena itu bergantung pada MySQL dan urutan startupnya mencoba untuk memulai sebelumnya - slapd memiliki posisi 27 dan mysqld memiliki posisi 64
Symlinks yang relevan di /etc/rc3.d/ adalah
S27slapd -> ../init.d/slapd
and
S64mysqld -> ../init.d/mysqld
Saya mencari nilai yang diatur dalam dua skrip init:
Saya mengedit baris chkconfig di /etc/rc.d/init.d/slapd untuk memiliki posisi awal yang lebih tinggi daripada yang ada di /etc/rc.d/init.d/mysqld (saya memilih 85)
Jawaban:
Anda dapat mengubah urutan dengan mengganti nama symlink di bawah /etc/rcX.d/ di mana x akan menjadi level run Anda.
Anda akan melihat banyak file dimulai dengan Sxx atau Kxx. Tautan S dilacak saat startup sedangkan yang K diuraikan untuk dimatikan. Xx di sini mewakili urutan.
Tetapi urutan ini diatur karena suatu alasan, jadi berhati-hatilah saat mengubahnya. Sebagai contoh. ntpd harus dimulai hanya setelah subsistem jaringan diinisialisasi.
sumber
Alih-alih melakukannya secara manual, seperti yang disarankan dalam jawaban lain, Anda juga dapat mengubah skrip init. Cukup tambahkan baris seperti itu ke header:
Ini akan memerintahkan
chkconfig
untuk menambahkan layanan ke runlevel 3 dan 5, dengan posisi awal 90 dan posisi membunuh 10.sumber
chkconfig off servicename && chkconfig on servicename
Anda ingin membaca sedikit tentang runlevels dan direktori rc.d Anda . Di dalam direktori rc.d Anda dapat menemukan tautan S dan K, seperti S20apache K10apache, yang pada dasarnya adalah apa yang memerintahkan startup / shutdown skrip.
Ada beberapa perubahan yang dibuat pada arsitektur ini, tetapi sebagian besar linux masih menggunakannya.
sumber
rcorder
telah ada untuk sementara waktu.svc
, tetapi bisa melakukannya tanpa xml stuffJika Anda telah tiba di sini, kemungkinan Anda memiliki dua layanan di mana satu tergantung pada yang lain tetapi, karena mereka mulai dalam urutan yang salah, yang dengan ketergantungan tidak memulai. Saran tentang pengeditan symlink bersifat informatif, dalam hal menggambarkan bagaimana urutan startup berjalan, dan akan bekerja dengan baik sampai seseorang melakukan "chkconfig on" pada layanan Anda di mana titik symlink akan dibuat kembali seperti semula. Sungguh, Anda ingin menangani masalah di tingkat skrip init, yang sebenarnya jauh lebih tidak berantakan untuk dilakukan. Ini juga akan konsisten di berbagai runlevel. Anda mungkin tidak perlu menambahkan baris "# chkconfig" seperti yang disarankan dalam jawaban 4 karena mungkin sudah ada baris serupa di sana.
Saya akan menggunakan contoh server yang menjalankan Openldap (slapd) dengan backend database MySQL (mysqld). Mengkonfigurasi pasangan itu, dan mengapa Anda mungkin ingin, adalah cerita lain.
Saat boot, Openldap gagal memulai karena itu bergantung pada MySQL dan urutan startupnya mencoba untuk memulai sebelumnya - slapd memiliki posisi 27 dan mysqld memiliki posisi 64
Symlinks yang relevan di /etc/rc3.d/ adalah
Saya mencari nilai yang diatur dalam dua skrip init:
Saya mengedit baris chkconfig di /etc/rc.d/init.d/slapd untuk memiliki posisi awal yang lebih tinggi daripada yang ada di /etc/rc.d/init.d/mysqld (saya memilih 85)
Saya melakukan "chkconfig slapd on" dan periksa kembali symlinks
Sekarang, ketika server ini dinyalakan, mysqld mulai sebelum slapd dan semuanya beres dengan dunia.
sumber