用Supervisor 守護Golang 應用程序的配置示例
阿新 • • 發佈:2018-12-30
Supervisor 可以監控伺服器的程序,並在出現問題是自動重啟。用Supervisor 來守護Golang 應用程序是不錯的選擇。
下面是一份用Supervisor 守護Golang 應用程序的配置:
[program:yourapp]
command=/home/yourappuser/bin/yourapp # the location of your app
autostart=true
autorestart=true
startretries=10
user=yourappuser # the user your app should run as (i.e. *not* root!)
directory=/srv/www/yourapp.com/ # where your application runs from
environment=APP_SETTINGS="/srv/www/yourapp.com/prod.toml" # environmental variables
redirect_stderr=true
stdout_logfile=/var/log/supervisor/yourapp.log # the name of the log file.
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10
###
1. 啟動下觀察效果,出現了一個錯誤。
[python] view plaincopyprint?
- [[email protected] ~]# supervisord -c ./supervisord.conf
- Error: .ini file does not include supervisord section
- For help, use /usr/bin/supervisord -h
意思是少了 [supervisrod] 配置項,可以參考 supervisord-section-settings, 修改配置檔案如下,還有log檔案最好先建立好,supervisord不會自己建立。
2.
sudo easy_install supervisor==3.2.0
注意 這裡就是重點:
通過apt-get安裝的supervisor 版本號是3.0b2, 而當你第一次安裝這個版本之後 再用easy_install的話 就也是這個版本 而不是最新版的3.2.0
然後生成配置檔案(root許可權):
echo_supervisord_conf >/etc/supervisord.conf
再然後:
sudo supervisord
再然後:
sudo supervisorctl
啟動成功.
最後說明:
使用easy_install安裝的supervisor的預設sock檔案 會被定義在/tmp下面 而apt-get會在/var/run下面. 鑑於apt-get會出現各種問題 這裡建議使用easy_install或是pip安裝 supervisor.
golang: https://astaxie.gitbooks.io/build-web-application-with-golang/content/zh/12.3.html