2 回答
TA贡献2021条经验 获得超8个赞
如果您使用 Upstart 运行系统,则可以使用以下脚本:
start on runlevel [2345]
stop on runlevel [016] or unmounting-filesystem
# Replace {soft} and {hard} with the soft and hard resource limits you desire
#limit nofile {soft} {hard}
umask 007
setuid ubuntu
setgid ubuntu
exec /usr/bin/my-go-app --logFile /var/log/my-go-app/my-go-app.log
您还可以在您的应用程序已正确启动和初始化的地方将以下代码添加到您的守护程序中:
if ("yes" == os.Getenv("MYAPP_RAISESTOP")) {
p, err := os.FindProcess(os.Getpid())
p.Signal(syscall.SIGSTOP)
}
以及上面新贵工作的以下内容:
env MYAPP_RAISESTOP="yes"
expect stop
如果if () { }不是真正的 Go 语法,我很抱歉;我是一个 C 程序员哈哈(虽然 () 和 {} 里面的东西是真实的,我做了一点研究:)。
执行最后一点可以确保 Upstart 在触发started事件之前等待您的应用程序正确设置。如果没有其他工作在等待您的应用程序,那么您实际上并不需要它。
- 2 回答
- 0 关注
- 193 浏览
添加回答
举报