我经常在Upstart初始化脚本中看到start on runlevel [2345] ,但是有时(例如这里 )我看到其他事件被用来确定开始时间。 我如何知道给定程序应该使用哪些事件(或状态代码)? 例如,我目前对Postgres和Pgbouncer使用runlevel [2345] ,但我不确定这是否是最好的主意。
你应该花一些时间看看一些文档 (通常是很好的build议),因为它取决于你的服务和它的要求。 没有通用的“最好的”只有符合你的服务要求。
是否使用更通用的“运行级别”或更明确的本地文件系统(7)和networking设备启动事件的差异应该由作业的行为来指导。 如果你的服务没有一个有效的networking接口(例如,它绑定到0.0.0.0,或者使用setsockopt(2)SO_FREEBIND),那么运行级别的事件是最好的,因为你的服务将提前启动并且并行启动与其他服务。
但是,如果你的服务需要configuration一个非回送接口(由于某种原因,它不会在没有广播能力的情况下启动),那么明确地说“一旦非回送设备已经出现”可以帮助…