statsd
).守护和启动这样一个服务的正确方法是什么?
潜在的守护者 – 应该是特定语言或一般的守护者?:
> forever(特定于节点)
> daemonize
> nohup(大概错了)
> start-stop-daemon(仅限debian?用于守护或启动/停止?Centos相当于什么?)
>应用程序本身是否真的知道如何守护自己,然后有一个-d标志? (例如通过node-daemonize2或forever-monitor?)
服务启动器 – 应该来自系统/发行版,还是应该来自monit等监控工具?:
>服务?在CentOS上真的是/etc/init.d吗?
>服务?在Ubuntu上真的是Upstart吗?
> monit?
> daemontools?
> runit?
不幸的是,我很陌生 – 在哪里可以阅读最标准,最经典,最可靠的方法?
Should the app itself really know how to daemonize itself…
如果您的应用程序要作为守护程序运行,是的,它应该完全了解如何守护自身,编写适当的文件(记住日志和PID),以及处理信号.如果不是这样的话,大WTF.
如果你的应用程序真的不是为了守护,或者这不是它的原始目的,那么这完全是你的决定.如果你想让别人轻松,你可能会添加它.如果你想让自己的生活更轻松,你可能会把它留下来.人们通常不会有任何“WTF”回应.
Service starters…
每个发行版的软件包/端口系统都应负责修改通用的启动/停止脚本以满足其特定需求.这些东西通常不是火箭科学,但如果有疑问,请联系维护人员,为你正在研究的发行版.
Monitoring tools..
应该知道如何与Distro的官方启动/停止机制进行交互,并且应该不知道如何专门与您的程序交互(除非您的程序通过报告机制“发布”数据,可能包括SNMP服务或类似的钩子;所有这实际上取决于你的程序做了什么).