J'utilise Ubuntu 12.04 LTS et ce système utilise principalement des travaux parvenus. Malheureusement, mon système dépend également d'un serveur dbmail compilé manuellement , qui n'a qu'un script init, mais pas de script upstart.
En utilisant update-rc.d dbmail defaults
j'ai installé dbmail pour tous les niveaux d'exécution, mais malheureusement il est démarré avant que MySQL ne soit en place, donc le démon meurt à nouveau. J'ai également essayé de le déplacer vers S90 ou similaire, toujours MySQL n'est pas disponible lorsque le script est exécuté.
J'ai tenté d'ajouter une dépendance à l'en-tête LSB du script, comme suit:
#!/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
Malheureusement, le script semble toujours être démarré avant MySQL. Je suis habitué aux scripts d'initialisation à l'ancienne, pas aux nouveaux arrivants, donc je suis un peu confus ici. Comment puis-je ajouter la dépendance ou comment démarrer le mysql
travail avant le dbmail
script init?
Comment puis-je vérifier / voir l'ordre de démarrage pris pour les travaux + scripts d'initialisation lors du démarrage? Existe-t-il un outil pour cela?
Le lancement manuel du script à partir d'un shell après le démarrage fonctionne correctement, car MySQL est déjà en cours d'exécution.
la source
Réponses:
Je pense que si vous exécutez à
/etc/init.d/dbmail start
partir de/etc/rc.local
, il démarrera après tous vos travaux parvenus / autres scripts d'initialisation.Cependant, je réglerais probablement ce problème en ajoutant un nouveau poste parvenu à
/etc/init/dbmail.conf
. Habituellement, les scripts init.d ont beaucoup de code pour vérifier l'état, etc., que upstart gère pour vous. Cela pourrait être aussi simple que:Ou, vous pouvez probablement utiliser le script init existant comme ceci:
la source