当另一个任务正在启动时,如何停止一个新启动的任务?

当另一个任务正在启动时,如何停止一个新启动的任务?

我想手动停止(稍后再重新启动)几个服务。如何找出符合依赖关系的正确顺序?

以前我可以解析 /etc/rc2.d 等文件的内容并遵循给定的顺序。这对 upstart 来说如何工作?

我需要的是一个脚本:

输入:服务列表

输出:此列表已排序,以便这些服务可以按该顺序安全启动

我想备份我的系统;在备份之前,我想停止可能导致备份不一致的服务(如邮件系统),或者可能在内存中而不是文件系统中(如数据库)有一些数据。

答案1

您可以将stop on service starting节添加到您想要在备份事件启动时停止的服务。如下所示:

# this is my test service

start on runlevel [2345]
stop on runlevel ![2345]
stop on backup starting
start on backup stoping

exec service --daemon

您必须将备份替换为使用 upstart 启动的服务的名称。还有 fire 事件节,但这有点复杂,因为它要求您同时修改要停止备份的服务和开始执行备份的服务。

相关内容