Mar*_* C. 10 upstart ubuntu ubuntu-12.04
我使用的是 Ubuntu 12.04 LTS,该系统主要使用新贵工作。不幸的是,我的系统还依赖于手动编译的dbmail服务器,它只有一个 init 脚本,但没有 upstart 脚本。
使用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
Run Code Online (Sandbox Code Playgroud)
不幸的是,脚本似乎仍然在 MySQL 之前启动。我习惯于陈旧的 init 脚本,而不是新贵的工作,所以我在这里有点困惑。如何添加依赖项或如何mysql
在dbmail
init 脚本之前启动作业?
如何在启动期间检查/查看作业 + init 脚本的启动顺序?有这个工具吗?
启动后从 shell 手动启动脚本工作正常,因为 MySQL 已经在运行。
小智 12
我想如果你/etc/init.d/dbmail start
从运行/etc/rc.local
,它会在你所有的新贵工作/其他初始化脚本之后启动。
但是,我可能会通过在/etc/init/dbmail.conf
. 通常 init.d 脚本有很多用于检查状态等的代码,由 upstart 为您处理。它可能很简单:
start on started mysql
exec /usr/local/bin/dbmail
Run Code Online (Sandbox Code Playgroud)
或者,您可以像这样使用现有的 init 脚本:
start on started mysql
pre-start script
/etc/init.d/dbmail start
end script
post-stop script
/etc/init.d/dbmail stop
end script
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8384 次 |
最近记录: |