GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Upstart :Startet den Dienst nach einem Nicht-Upstart-Prozess

Sie haben einige Möglichkeiten:

1) Lassen Sie mysql Upstart darüber informieren, dass es gestartet wurde, indem Sie ein Ereignis ausgeben

initctl emit mysql-started " oder ähnlich.

Dies könnte durch Hinzufügen des initctl gehandhabt werden Aufruf von /etc/init.d/mysql .

2) Deaktivieren Sie mysql von den normalen SysV-Runlevels und erstellen Sie einen Wrapper-Upstart-Job, der es startet (nicht, dass dies das Stoppen nicht handhabt - nur ein Beispiel):

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

Dann haben Sie Ihren Job "start on started mysql-sysv ".

Das Problem hier ist, dass Sie in Schwierigkeiten geraten, wenn jemand (oder ein Systemtool automatisch) den /etc/rc?.d erneut hinzufügt Links zum Original /etc/init.d/mysql Dienstskript. Außerdem stellen Sie möglicherweise fest, dass mysql erst einige Zeit nach fertig ist Die Haupt-PID wurde gestartet. Datenbanken sind problematisch, da es einige Zeit dauern kann, bis sie "online" sind, selbst nachdem sie gestartet wurden (Wiedergabe des Transaktionsprotokolls usw.).

3) Erstellen Sie einen Upstart-Job ("Kellner"), der "bei gestopptem RC startet" (dh startet, wenn alle SysV-Jobs behauptet haben, beendet zu sein) und dann abfragt, bis mysql bereit ist, und dann beendet wird. Lassen Sie Ihren Job "auf gestopptem Kellner beginnen".

4) Konvertieren Sie mysql in einen Upstart-Job (die beste Option). Hier oben gibt es einen Ausgangspunkt für eine Upstart-Mysql-Konfiguration:https://github.com/devo-ps/init-scripts/tree/master/mysql/ubuntu


Linux
  1. Dienste in CentOS 8 starten, stoppen oder neu starten - Schritt-für-Schritt-Prozess?

  2. Prozessstartzeit mit Zeitzone?

  3. Linux:in einen Dienst verarbeiten

  4. Systemd:Sowohl After als auch Requires verwenden

  5. So starten Sie einen systemd-Dienst nach der Benutzeranmeldung und stoppen ihn vor der Benutzerabmeldung

So starten, stoppen oder starten Sie Apache neu

So starten, stoppen oder starten Sie Nginx neu

Ubuntu – Dienste starten, stoppen, neu starten

Der MongoDB-Dienst startet nach der Ersteinrichtung nicht

Der postgresql-Dienst kann unter CentOS 7 nicht gestartet werden

Wie starte ich MySQL automatisch nach dem Neustart des Servers (CentOS + andere Distributionen)?