打開Terminal 定位到工程的 main.go
文件夾目錄
使用命令 bee pack -be GOOS=linux
進行打包
將打包好的程序,放到Linux上的某個目錄。
將程序放在后台運行,這里使用screen命令進行操作。一般來說,Linux都會自帶了screen,如果沒有,則可通過命令 sudo apt-get install screen 或 sudo yum install screen進行安裝。
安裝完成screen后,使用命令screen -S ***進入到screen后台界面,其中打 *** 號的是給這個屏幕建一個別名,這樣好知道后台部署的程序在哪個screen的容器內。
在進入到某個screen后,就可在這里進行運行你的程序的操作。這里使用nohup進行運行,如nohup ./app &進行運行。(此處一定要在打包上傳后的beego項目目錄中運行 不然beego啟動起來后會產生模板路徑問題)
執行結束后,按鍵盤 ctrl+A+D鍵進入到前台。
需要查看有哪些screen在使用,可使用screen -ls查看。如下:
[root@izwz9j9o61ggn****hbz ~]# screen -ls
There is a screen on:
6931.golang***Api (Detached)
1 Socket in /var/run/screen/S-root.
其中,6931即為該實例的ID號。后面即可通過 screen -r 6931 再次進入到該實例進行操作。若出現使用以上命令無法進入,則使用screen -d 6931 后再次使用-r命令即可進入。
若使用nginx做http代理則使用beego文檔上的配置即可
ps:推薦使用Supervisord來進行beego的進程管理 防止beego掛掉 教程見beego官方文檔
https://beego.me/docs/deploy/supervisor.md
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
安裝 setuptools
wget https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg sh setuptools-0.6c11-py2.7.egg easy_install supervisor echo_supervisord_conf >/etc/supervisord.conf mkdir /etc/supervisord.conf.d
-
修改配置
/etc/supervisord.conf
[include] files = /etc/supervisord.conf.d/*.conf
-
新建管理的應用
cd /etc/supervisord.conf.d vim beepkg.conf
配置文件:
[program:beepkg] directory = /opt/app/beepkg command = /opt/app/beepkg/beepkg autostart = true startsecs = 5 user = root redirect_stderr = true stdout_logfile = /var/log/supervisord/beepkg.log
- 注意 directory必須配置 不然項目啟動起來會報靜態文件路徑錯誤 stdout_logfile指向的文件需要提前創建
supervisord 管理
Supervisord 安裝完成后有兩個可用的命令行 supervisord 和 supervisorctl,命令使用解釋如下:
- supervisord,初始啟動 Supervisord,啟動、管理配置中設置的進程。
- supervisorctl stop programxxx,停止某一個進程(programxxx),programxxx 為 [program:beepkg] 里配置的值,這個示例就是 beepkg。
- supervisorctl start programxxx,啟動某個進程
- supervisorctl restart programxxx,重啟某個進程
- supervisorctl stop groupworker: ,重啟所有屬於名為 groupworker 這個分組的進程(start,restart 同理)
- supervisorctl stop all,停止全部進程,注:start、restart、stop 都不會載入最新的配置文件。
- supervisorctl reload,載入最新的配置文件,停止原有進程並按新的配置啟動、管理所有進程。
- supervisorctl update,根據最新的配置文件,啟動新配置或有改動的進程,配置沒有改動的進程不會受影響而重啟。
- 注意:顯示用 stop 停止掉的進程,用 reload 或者 update 都不會自動重啟。