GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mengubah urutan startup/boot layanan Linux?

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.


Linux
  1. Cara Mengubah Nama Pengguna di Linux

  2. Cara Mengubah Nama Host di Linux

  3. Bagaimana cara mengubah partisi swap di Linux?

  1. Cara mengubah nama host di Linux

  2. Cara Mengubah Port SSH Di Linux

  3. Linux – Bagaimana Cara Mengubah Kata Sandi Root yang Terlupakan?

  1. Cara mengubah nama host di Redhat 7 Linux

  2. Cara Mengubah Kata Sandi Pengguna di Linux

  3. Cara Mengganti Shell di Linux