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