Ubuntu 向upstart服务发送重新加载命令

Ubuntu 向upstart服务发送重新加载命令,ubuntu,upstart,Ubuntu,Upstart,如何向由upstart启动的守护程序发送某种重新加载命令,而无需完全停止它?upstart通常管理两种类型的进程: 运行一次以处理事件的程序 长期存在并为其他对象提供服务的守护进程 守护进程通常为SIGHUP信号提供一个信号处理程序,要求守护进程重新读取和解析其配置文件。(SIGHUP是一种挂起信号,与连接或断开电话线或SSH协议时可能出现或消失的终端更相关。对于没有终端的程序,“挂起”其终端是没有意义的,因此除非通过系统管理员操作,否则该信号不会发送到守护进程。) 如果您可以修改程序以在收

如何向由
upstart
启动的守护程序发送某种重新加载命令,而无需完全停止它?

upstart
通常管理两种类型的进程:

  • 运行一次以处理事件的程序
  • 长期存在并为其他对象提供服务的守护进程
守护进程通常为
SIGHUP
信号提供一个信号处理程序,要求守护进程重新读取和解析其配置文件。(
SIGHUP
是一种挂起信号,与连接或断开电话线或SSH协议时可能出现或消失的终端更相关。对于没有终端的程序,“挂起”其终端是没有意义的,因此除非通过系统管理员操作,否则该信号不会发送到守护进程。)


如果您可以修改程序以在收到
SIGHUP
信号时重新读取其配置,则可以使用标准的
upstart
重新加载服务
命令重新加载配置文件。(您可以根据此信号执行任何操作,但系统管理员希望守护程序根据此信号重新读取配置文件——执行其他操作可能会令人困惑和恼火。)

通过
upstart
启动的服务要么是运行以处理事件的一次性程序,要么是长期运行的守护程序。通常,这类程序的stdin/stdout/stderr并不存在——它们在需要报告问题时写入日志文件,并从特定文件读取输入。我很好奇为什么你要尝试围绕这个正常的范例工作——你想解决什么问题?我通过upstart以守护进程的形式运行node.js脚本,它需要永久运行。此脚本有时需要获取重新加载命令。遗憾的是upsart不支持类似于
reloadservercontrol
的语法。因此,我考虑使用stdin,因为我无法停止
停止服务器控制和启动服务器控制的脚本
重新加载服务
将向您的进程发送
SIGHUP
信号;守护进程经常使用
SIGHUP
信号请求重新读取其配置文件。。。那对你有用吗?管理员可以像管理其他工作一样轻松地管理您的任务。哦。。。哇!这很有效。我被闪电击中了。我可以发誓几分钟前它没用。我会编辑我的问题,你会发布你的答案,这样我就可以投票并检查它了?:)您还可以配置upstart脚本,以便为
reload
命令发出不同的信号。在脚本本身中,只需声明
reload signal USR2
或任何你的应用程序示例。