GNU/Linux >> Linux Esercitazione >  >> Linux

Upstart :avvia il servizio dopo il processo non upstart

Hai alcune opzioni:

1) fare in modo che mysql informi Upstart che è stato avviato emettendo un evento

initctl emit mysql-started " o simile.

Questo potrebbe essere gestito aggiungendo il initctl invocazione a /etc/init.d/mysql .

2) Disabilita mysql dai normali runlevel SysV e crea un processo Upstart wrapper che lo avvii (non questo non gestisce l'arresto - solo un esempio):

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

Quindi, ottieni il tuo lavoro "start on started mysql-sysv ".

Il problema qui è che ti imbatterai in problemi se qualcuno (o qualche strumento di sistema automaticamente) aggiunge nuovamente il /etc/rc?.d collega al /etc/init.d/mysql originale script di servizio. Inoltre, potresti scoprire che mysql non è effettivamente pronto fino a qualche tempo dopo è iniziato il pid principale. I database sono problematici in quanto potrebbero richiedere del tempo per essere "online" anche dopo che sono stati avviati (riproduzione del registro delle transazioni, ecc.).

3) Creare un lavoro upstart ("cameriere") che "inizia su rc interrotto" (ovvero inizia quando tutti i lavori SysV hanno affermato di essere terminati) e quindi esegue il polling in attesa che mysql sia pronto, quindi esce. Fai in modo che il tuo lavoro "inizia con il cameriere fermo".

4) Converti mysql in un lavoro Upstart (l'opzione migliore). C'è un punto di partenza per una nuova configurazione di mysql quassù:https://github.com/devo-ps/init-scripts/tree/master/mysql/ubuntu


Linux
  1. Linux – Modificare /proc/pid/environ dopo l'avvio del processo?

  2. Centos - Systemd uccide il servizio immediatamente dopo l'avvio?

  3. Avviare un processo su un Tty diverso?

  4. Ora di inizio del processo con fuso orario?

  5. Impossibile avviare Thesql Community Server (5.7)?

Come avviare, arrestare o riavviare Apache

Come avviare, arrestare o riavviare Nginx

Avvia, arresta o riavvia i servizi in CentOS 8 - Processo passo dopo passo?

Ubuntu:avvia, arresta, riavvia i servizi

mysql non si avvia dopo aver riposizionato la directory dei dati

systemctl arresta il servizio Tomcat immediatamente dopo l'avvio