首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RHEL6 Upstart:重新启动期间的事件流

RHEL6 Upstart:重新启动期间的事件流
EN

Server Fault用户
提问于 2013-12-23 20:16:50
回答 1查看 1.9K关注 0票数 1

在应用程序和数据库有机会优雅地停止之前,RHEL6.4服务器发送TERMKILL信号的速度太快了。看起来Upstart正在过早地将控制权交给sysv脚本。

为了解决这个问题,我尝试将sleeplogger命令添加到Upstart配置中。pre-script节正在写入syslog,但是睡眠从未完成,因为系统在10秒内重新启动。我还添加了一个被忽略的kill timeout

代码语言:javascript
复制
# cleanup at system shutdown
# Does stop all on apps, stops monit instances, then does a clean.
start on runlevel [016]

console output
kill timeout 120

task

pre-start script
    logger -s -t "arcsight-services-stopall" "Running pre-start..."
    /etc/init.d/arcsight_services stop
    sleep 60
end script

script
    logger -s -t "arcsight-services-stopall" "Running script..."
    /etc/init.d/arcsight_services shutdown monit
    /etc/init.d/arcsight_services clean all
end script

我知道Upstart应该并行化引导/停止进程,但它只会使我的调试尝试瘫痪。

RHEL 6下的

,发布后执行的脚本的最终顺序是什么:shutdown -r now?

  1. shutdown -r now
  2. ?????
  3. /etc/init/rc.conf (Upstart)
  4. /etc/rc.d/rc (sysv-rc)
  5. ?????
  6. /etc/rc3.d/K* (sysv-rc)
  7. /etc/rc6.d/S* (sysv-rc)
  8. ?????

其他/etc/init/*..conf脚本在哪里调用?

更新:在剖析/etc/rc.d/rc**时,我发现如果我** touch /var/run/confirm**,流程进入交互模式,然后我的睡眠和记录器命令似乎会执行。这让我很困惑,因为我当时以为Upstart已经通过了sysv-rc.**的控制。

EN

回答 1

Server Fault用户

发布于 2013-12-26 18:09:36

虽然这个答案没有解决在RHEL 6关机期间执行脚本的顺序,但它确实解决了系统在进程被优雅地停止之前杀死它们的问题。

/etc/init/arcsight-services-stopall.conf:

代码语言:javascript
复制
# cleanup at system shutdown
# Does stop all on apps, stops monit instances, then does a clean.

start on starting rc RUNLEVEL=[016]

task
kill timeout 330

pre-start script
    logger -s -t "ArcSight" "ArcSight ESM shutdown initiated..."
    /etc/init.d/arcsight_services shutdown all
    /etc/init.d/arcsight_services shutdown monit
    /etc/init.d/arcsight_services clean all
    sleep 300
end script

script
    logger -s -t "ArcSight" "ArcSight ESM shutdown complete."
end script

关键是修改start on starting rc RUNLEVEL=[016]。通过在/etc/init/rc.conf刚刚开始时启动这个脚本,它会阻塞5分钟,然后执行sysv-rc脚本。希望在这5分钟内,所有ArcSight数据库和应用程序都会被优雅地停止。测试表明,一切都在3分钟内停止,所以5分钟应该是一个安全的延迟。

看到一款价值数百万美元的产品需要客户攻击,这总是件好事。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/563238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档