golang 的編譯安裝以及supervisord部署

go的編譯

go的編譯相對很簡單,只須要一個命令便可完成,進入項目開發路徑,輸入app

go install <appName>

便可在bin文件夾下生成可執行文件 appName。此文件可直接運行。
備註:生成的可執行文件只包含go的程序文件,配置文件,views文件等須要拷貝過來,這樣才能組成一個完整的運行程序。工具

go的部署

supervisord安裝
yum install setuptools //先安裝工具
yum install supervisor
修改配置文件
vi /etc/supervisord.conf

將最後一行的代碼改成this

files = /etc/supervisord.conf.d/*.conf
新增文件並編寫配置
vi /etc/supervisord.conf.d/appname.conf
[program:appname]
user=root
command=/data/host/liudu/go/bin/appname
autostart=true
startsecs=10
stdout_logfile=/data/host/liudu/golog/appname.log //此文件需手動建立
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stderr_logfile=/data/host/liudu/golog/appname.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
stopsignal=INT
[supervisord]
command:表示運行的命令,填入完整的路徑便可。
autostart:表示是否跟隨supervisor一塊兒啓動。
autorestart:若是該程序掛了,是否從新啓動。
stdout_logfile:終端標準輸出重定向文件。
stderr_logfile:終端錯誤輸出重定向文件。
啓動服務
supervisord -c /etc/supervisord.conf.d/renmaiApi/conf

supervisord 管理

  • supervisord,初始啓動Supervisord,啓動、管理配置中設置的進程。
  • supervisorctl stop programxxx,中止某一個進程(programxxx),programxxx爲[program:appname]裏配置的值,這個示例就是appname。
  • supervisorctl start programxxx,啓動某個進程
  • supervisorctl restart programxxx,重啓某個進程
  • supervisorctl stop groupworker: ,重啓全部屬於名爲groupworker這個分組的進程(start,restart同理)
  • supervisorctl stop all,中止所有進程,注:start、restart、stop都不會載入最新的配置文件。
  • supervisorctl reload,載入最新的配置文件,中止原有進程並按新的配置啓動、管理全部進程。
  • supervisorctl update,根據最新的配置文件,啓動新配置或有改動的進程,配置沒有改動的進程不會受影響而重啓。rest

    注意:顯示用stop中止掉的進程,用reload或者update都不會自動重啓。code

錯誤記錄

Error: Another program is already listening on a port that one of our HTTP servers is configured to use.  Shut this program down first before starting supervisord.
For help, use /usr/bin/supervisord -h

解決辦法server

find / -name supervisor.sock
unlink /***/supervisor.sock
相關文章
相關標籤/搜索