Startup
Inhaltsverzeichnis
Allgemeine Hinweise
Wenn in einem VServer Upstart eingesetzt wird, kommt es häufig zu Startproblemen. Dies hängt mit dem Event Basierten Interface von Upstart zusammen.
Es ist jedoch möglich in einem VServer Upstart zu betreiben, dabei sind einige Punkte zu beachten, wie die Skripte unter /etc/init.d/ gestaltet sein sollten.
Start Reihenfolge
Upstart setzt auf eine Event basierte Start Reihenfolge. Die nötigen Events sind unter dem Parameter start und stop vermerkt.
Beispielsweise bedeutet "start on filesystem" das der Dienst erst gestartet wird, wenn die Filesysteme gemountet sind.
Dies kann jedoch ignoriert werden, da im VServer beim starten auf jeden Fall alle Dateisysteme eingehängt sind.
Folgende Parameter können somit abgeändert werden:
- virtual-filesystems
- local-filesystems
- remote-filesystems
- filesystem
- net-device-up
Stattdessen empfehlen wir den Einsatz von "startup". Die Zeile lautet also "start on startup"
Hardware-nahe Dienste
Da auf die Hardware aus einem VServer nicht zugegriffen werden kann, sollten alle Hardware nahen Dienste vom Start ausgeschlossen werden, dies kann entweder durch das löschen der entsprechenden config Datei unter /etc/init geschehen oder aber durch auskommentieren der einzelnen Zeilen im Skript. Die zweite Variante ist mehr zu empfehlen, da der Update Manager nun danach schaut ob sich ein File geändert hat, sollte es gelöscht sein wird er es einfach wieder erstellen.
expect fork
Auf diese Einstellung muss verzichtet werden. Mit dieser Methode prüft Upstart ob ein Dienst einen Fork durchführt. Da hierfür jedoch eine spezielle Kernel Schnittstelle verwendet wird, muss "expect fork" auskommentiert werden. Stattdessen muss der Daemon mit einer "no background" Option gestartet werden.
Am Beispiel SSH sieht die ssh.conf folgendermaßen aus:
#expect fork ... exec /usr/sbin/sshd -D
Liste anzupassender Dienste
Hier pflegen wir eine Liste von Diensten welche uns bekannt sind bei welchen ggf. Anpassungen notwendig sind. Beachten Sie das hier nicht jegliche Software aufgelistet wird bei welchen Anpassungen notwendig sind, sondern lediglich diese welche bekannt sind.
Die Liste enthält lediglich zu ändernde Parameter und nicht die vollständigen Config Dateien. Der Inhalt des ersten Kastens muss jeweils gelöscht / auskommentiert (#) werden, die der Inhalt des zweiten Kastens muss gesetzt werden. Bei Diensten wie SSH die ggf. nach einem Neustart des vServers nicht mehr starten, verwenden Sie das Rettungssystem. Darin können Sie auf die Daten des vServers über /vserver/etc/init zugreifen um die Konfigurationsdateien ggf. anzupassen.
Allgemein
Dies gilt unter anderem für folgende Dienste:
- Apache2
- proFTPd
/etc/init/rc-sysinit.conf
#start on filesystem and net-device-up IFACE=lo
start on startup
SSH
/etc/init/ssh.conf
start on filesystem oom never
start on startup #oom never
mySQL
/etc/init/mysql.conf
start on (net-device-up and local-filesystems and runlevel [2345])
start on startup
cron
/etc/init/cron.conf
start on runlevel [2345] expect fork
start on startup #expect fork