我正在使用Ubuntu 12.04 LTS,该系统主要使用新贵作业。不幸的是,我的系统还依赖于手动编译的dbmail服务器,该服务器只有一个初始化脚本,而没有新贵脚本。
使用update-rc.d dbmail defaults
我为所有运行级别安装的dbmail,但是不幸的是它在MySQL启动之前就已启动,因此守护进程再次消失。我也尝试将其移至S90或类似版本,但运行脚本时MySQL仍然不可用。
我试图将依赖项添加到脚本的LSB标头中,如下所示:
#!/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
不幸的是,该脚本似乎仍在MySQL之前启动。我习惯了老式的初始化脚本,而不是新手,所以在这里我有些困惑。如何添加依赖关系或如何使mysql
作业在dbmail
初始化脚本之前启动?
如何在启动过程中查看/查看作业+初始化脚本的启动顺序?有这个工具吗?
启动后从外壳手动启动脚本可以正常工作,因为那时MySQL已经在运行。
丑陋的解决方法是在初始化脚本的“ start()”函数中添加“ sleep 3”。但是必须有一种更清洁的方法,这只是在滥用比赛条件,我真的很想以正确的方式解决此问题。
—
Martin C.