Solusi 1:
Alih-alih melakukannya secara manual, seperti yang disarankan di jawaban lain, Anda juga bisa mengubah skrip init. Cukup tambahkan baris seperti itu ke tajuk:
# chkconfig: 35 90 10
Ini akan menginstruksikan chkconfig
untuk menambahkan layanan ke runlevel 3 dan 5, dengan posisi awal 90 dan posisi mati 10.
Solusi 2:
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 yang dimulai dengan Sxx atau Kxx. Tautan S dilacak selama pengaktifan sedangkan tautan K diurai untuk dimatikan. xx di sini mewakili pesanan.
Namun urutan ini ditetapkan karena suatu alasan, jadi berhati-hatilah saat mengubahnya. Misalnya. ntpd harus dimulai hanya setelah subsistem jaringan diinisialisasi.
Solusi 3:
Anda ingin membaca sedikit tentang direktori runlevel dan rc.d Anda. Di dalam direktori rc.d Anda dapat menemukan tautan S dan K, seperti S20apache K10apache, yang pada dasarnya memerintahkan startup/shutdown skrip.
Ada beberapa perubahan yang dilakukan pada arsitektur ini, tetapi sebagian besar linux masih menggunakannya.
Solusi 4:
Jika Anda tiba di sini, kemungkinan Anda memiliki dua layanan di mana yang satu bergantung pada yang lain, tetapi karena mereka memulai dengan urutan yang salah, layanan dengan ketergantungan gagal memulai. Saran tentang mengedit symlink bersifat informatif, dalam hal mengilustrasikan bagaimana urutan startup berjalan, dan akan berfungsi dengan baik sampai seseorang melakukan "chkconfig on" pada layanan Anda di mana symlink akan dibuat ulang 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 di jawaban 4 karena kemungkinan sudah ada baris serupa di sana.
Saya akan menggunakan contoh server yang menjalankan Openldap (slapd) dengan backend database MySQL (mysqld). Mengonfigurasi pasangan itu, dan mengapa Anda mungkin menginginkannya, adalah cerita lain.
Saat boot, Openldap gagal untuk memulai karena tergantung pada MySQL dan urutan startup telah mencoba untuk memulai sebelumnya - slapd memiliki posisi 27 dan mysqld memiliki posisi 64
Symlink 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 lebih tinggi dari 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 memeriksa ulang symlink
[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 mulai, mysqld dimulai sebelum slapd dan semuanya baik-baik saja dengan dunia.