Supervisord 守护 golang 程序

环境目录

/home/wwwroot/api3/ 目录下有以下 2 个文件 api-v3_linux_amd64go 编译后的可执行文件,程序执行后 会取得当前路径下的 config.yaml 文件做为配置

[root]# ls
config.yaml
api-v3_linux_amd64

使用 nohup 后台服务

nohup ./api-v3_linux_amd64 & 

使用 nohup 执行后有时候 程序会 退出服务,后来发现可以用 Supervisord 来做 Go 的 守护管理

使用 Supervisord 守护

[program:api3]                                                                                                               
user=root
directory=/home/wwwroot/api3/
command=api-v3_linux_amd64
autostart=true
autorestart=true
startsecs=10
stdout_logfile=/root/Applications/LogFile/log/api3.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stderr_logfile=/root/Applications/LogFile/err/api3.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
stopsignal=INT
[supervisord]

go 加载配置文件

func init() {
    configor.Load(&Config, "config.yaml")
}

遇到问题

使用后 api-v3_linux_amd64 可执行程序读不到 当前目录下的 yaml 配置文件

感恩谢语

想请各位大佬 指点一下 , 感谢各位大佬,祝各位大佬 元旦快乐!!

阅读 3.3k
2 个回答

试试把directory=/home/wwwroot/api3/ 的最后一个斜杠去掉呢...还有就是检查一下supervisor和config.yaml的权限...读不到通常是路径或者文件权限问题引起的

放到启动参数里面吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题