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.
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 chkconfig
untuk menambahkan layanan ke runlevel 3 dan 5, dengan posisi awal 90 dan posisi membunuh 10.
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.
rcorder
telah ada untuk sementara waktu.
svc
, tetapi bisa melakukannya tanpa xml stuff
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:
[root ~]# grep chkconfig /etc/rc.d/init.d/mysqld
# chkconfig: - 64 36
[root ~]# grep chkconfig /etc/rc.d/init.d/slapd
# chkconfig: - 27 73
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)
[root ~]# grep chkconfig /etc/rc.d/init.d/slapd
# chkconfig: - 85 73
Saya melakukan "chkconfig slapd on" dan periksa kembali symlinks
[root ~]# chkconfig slapd on
[root ~]# ls -l /etc/rc3.d/ | grep mysqld
lrwxrwxrwx 1 root root 16 Dec 10 13:45 S64mysqld -> ../init.d/mysqld
[root ~]# ls -l /etc/rc3.d/ | grep slapd
lrwxrwxrwx 1 root root 15 Apr 28 14:18 S85slapd -> ../init.d/slapd
Sekarang, ketika server ini dinyalakan, mysqld mulai sebelum slapd dan semuanya beres dengan dunia.