当前位置: 首页>>技术教程>>正文


如何在Ubuntu 12.04上依赖init脚本中的新贵作业

, ,

问题描述

我正在使用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之前启动。我习惯于old-fashined初始化脚本,而不是为了暴发户工作,所以我在这里有些困惑。如何添加依赖关系或如何使mysql作业在dbmail初始化脚本之前启动?

如何在启动过程中检查/查看作业+初始化脚本的启动顺序?有这个工具吗?

启动后从 shell 手动启动脚本可以正常工作,因为那时MySQL已经在运行。

最佳思路

我认为,如果您从/etc/rc.local运行/etc/init.d/dbmail start,它将在所有新手作业/其他初始化脚本之后启动。

但是,我可能会通过在/etc/init/dbmail.conf中添加新的新贵工作来解决此问题。通常,init.d脚本包含许多用于检查状态等的代码,这些代码由新贵为您处理。它可能很简单:

start on started mysql
exec /usr/local/bin/dbmail

或者,您可能可以使用现有的初始化脚本,如下所示:

start on started mysql
pre-start script
  /etc/init.d/dbmail start
end script
post-stop script
  /etc/init.d/dbmail stop
end script

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7644.html,未经允许,请勿转载。