Korzystam z Ubuntu 12.04 LTS i ten system wykorzystuje przede wszystkim zadania upstart. Niestety mój system zależy również od ręcznie skompilowanego serwera dbmail , który ma tylko skrypt inicjujący, ale nie ma skryptu wstępnego.
Za pomocą update-rc.d dbmail defaults
zainstalowałem dbmail dla wszystkich poziomów pracy, ale niestety jest on uruchamiany przed uruchomieniem MySQL, więc demon ponownie umiera. Próbowałem także przenieść go do S90 lub podobnej, ale MySQL nie jest dostępny po uruchomieniu skryptu.
Próbowałem dodać zależność do nagłówka LSB skryptu w następujący sposób:
#!/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
Niestety skrypt nadal wydaje się być uruchamiany przed MySQL. Jestem przyzwyczajony do starych skryptów inicjujących, a nie do rozpoczynania zadań, więc jestem trochę zdezorientowany. Jak mogę dodać zależność lub jak mogę rozpocząć mysql
zadanie przed dbmail
skryptem init?
Jak mogę sprawdzić / zobaczyć kolejność uruchamiania przyjętą dla zadań + skryptów inicjujących podczas rozruchu? Czy jest na to narzędzie?
Ręczne uruchamianie skryptu z powłoki po uruchomieniu działa dobrze, ponieważ MySQL już działa.
źródło
Odpowiedzi:
Myślę, że jeśli uruchomić
/etc/init.d/dbmail start
z/etc/rc.local
, rozpocznie po wszystkich zadań nowobogackich / innych skryptów startowych.Prawdopodobnie naprawiłbym to, dodając nowe zadanie upstart w
/etc/init/dbmail.conf
. Zwykle skrypty init.d zawierają dużo kodu do sprawdzania statusu itp., Który obsługuje dla Ciebie upstart. Może to być tak proste, jak:Lub prawdopodobnie możesz użyć istniejącego skryptu inicjującego w następujący sposób:
źródło