Ich verwende Ubuntu 12.04 LTS und dieses System verwendet hauptsächlich Upstart-Jobs. Leider hängt mein System auch von einem manuell kompilierten dbmail- Server ab, der nur ein Init-Skript, aber kein Upstart-Skript enthält.
Mit update-rc.d dbmail defaults
Ich habe dbmail für alle Runlevel installiert, aber leider wird es gestartet, bevor MySQL aktiv ist, sodass der Daemon erneut stirbt. Ich habe auch versucht, es auf S90 oder ähnliches zu verschieben, aber MySQL ist immer noch nicht verfügbar, wenn das Skript ausgeführt wird.
Ich habe versucht, dem LSB-Header des Skripts wie folgt eine Abhängigkeit hinzuzufügen:
#!/bin/sh
### BEGIN INIT INFO
# Provides: dbmail
# Required-Start: $local_fs $remote_fs $syslog $network mysql
# Required-Stop: $local_fs $remote_fs $syslog $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start dbmail services
# Description: Run network services provided by dbmail such as
# imap-server, pop3-server, lmtp-server, timsieve-server
### END INIT INFO
Leider scheint das Skript noch vor MySQL gestartet zu sein. Ich bin an altmodische Init-Skripte gewöhnt, nicht daran, Jobs neu zu starten, daher bin ich hier etwas verwirrt. Wie kann ich die Abhängigkeit hinzufügen oder wie kann ich den mysql
Job vor dem dbmail
Init-Skript starten lassen ?
Wie kann ich die Startreihenfolge für Jobs + Init-Skripte während des Startvorgangs überprüfen / anzeigen? Gibt es dafür ein Werkzeug?
Das manuelle Starten des Skripts von einer Shell nach dem Start funktioniert einwandfrei, da MySQL dann bereits ausgeführt wird.
quelle
Antworten:
Ich denke , wenn Sie laufen
/etc/init.d/dbmail start
aus/etc/rc.local
, es nach allen Ihren Emporkömmling Jobs / andere Init - Skripte gestartet.Allerdings würde ich dies wahrscheinlich beheben, indem ich einen neuen Startjob bei hinzufüge
/etc/init/dbmail.conf
. Normalerweise enthalten init.d-Skripte viel Code zum Überprüfen des Status usw., den Upstart für Sie erledigt. Es könnte so einfach sein wie:Oder Sie können das vorhandene Init-Skript wahrscheinlich folgendermaßen verwenden:
quelle