GNU/Linux >> Belajar Linux >  >> Linux

Pemula :memulai layanan setelah proses non-pemula

Anda memiliki beberapa opsi:

1) buat mysql memberi tahu Pemula bahwa itu telah dimulai dengan memancarkan acara

initctl emit mysql-started " atau serupa.

Ini dapat ditangani dengan menambahkan initctl pemanggilan ke /etc/init.d/mysql .

2) Nonaktifkan mysql dari runlevel SysV normal dan buat pembungkus Pekerjaan pemula yang memulainya (bukan ini tidak menangani penghentian - hanya sebuah contoh):

cat >>/etc/init/mysql-sysv.conf<<EOT
  # wait for SysV job to finish
  start on stopped rc
  exec /etc/init.d/mysql start
EOT

Kemudian, dapatkan pekerjaan Anda "start on started mysql-sysv ".

Masalahnya di sini adalah Anda akan mendapat masalah jika seseorang (atau beberapa alat sistem secara otomatis) menambahkan kembali /etc/rc?.d tautan ke /etc/init.d/mysql asli skrip layanan. Juga, Anda mungkin menemukan bahwa mysql sebenarnya belum siap sampai beberapa saat setelah itu pid utama telah dimulai. Basis data bermasalah karena mungkin memerlukan waktu untuk "online" bahkan setelah dimulai (pemutaran ulang log transaksi, dll).

3) Buat pekerjaan pemula ("pelayan") yang melakukan "mulai saat berhenti rc" (yaitu mulai ketika semua pekerjaan SysV diklaim telah selesai) dan kemudian jajak pendapat menunggu mysql siap, lalu keluar. Apakah pekerjaan Anda "mulai dari pelayan yang berhenti".

4) Ubah mysql menjadi pekerjaan Pemula (opsi terbaik). Ada titik awal untuk konfigurasi mysql pemula di sini:https://github.com/devo-ps/init-scripts/tree/master/mysql/ubuntu


Linux
  1. Cara Menghentikan Proses dalam MySQL

  2. Mulai, Hentikan, atau Mulai Ulang Layanan di CentOS 8 - Proses Langkah demi Langkah?

  3. Proses Waktu Mulai Dengan Zona Waktu?

  1. Linux:proses menjadi layanan

  2. Systemd:Menggunakan After dan Requires

  3. Cara memulai layanan systemd setelah pengguna masuk dan menghentikannya sebelum pengguna keluar

  1. mysql tidak dimulai setelah merelokasi dir data

  2. systemctl menghentikan layanan Tomcat segera setelah dimulai

  3. ubah /proc/PID/environ setelah proses dimulai