新聞中心
使用?GOFrame?開發(fā)的應(yīng)用程序可以獨(dú)立地部署到服務(wù)器上,設(shè)置為后臺(tái)守護(hù)進(jìn)程運(yùn)行即可。這種模式常用在簡單的API服務(wù)項(xiàng)目中。

服務(wù)器我們推薦使用?*nix?服務(wù)器系列(包括:?Linux?, ?MacOS?, ?*BSD?),以下使用?Ubuntu?系統(tǒng)為例,介紹如何部署使用?GoFrame?框架開發(fā)的項(xiàng)目。
1. nohup
我們可以使用簡單的?nohup?命令來運(yùn)行應(yīng)用程序,使其作為后臺(tái)守護(hù)進(jìn)程運(yùn)行,即使遠(yuǎn)程連接的?SSH?斷開也不會(huì)影響程序的執(zhí)行。在流行的?Linux?發(fā)行版中往往都默認(rèn)安裝好了?nohup?命令工具。 命令如下:
nohup ./gf-app &
2. tmux
?tmux?是一款?Linux?下的終端復(fù)用工具,可以開啟不同的終端窗口來將應(yīng)用程序作為后臺(tái)守護(hù)進(jìn)程執(zhí)行,即使遠(yuǎn)程連接的?SSH?斷開也不會(huì)影響程序的執(zhí)行。 在?ubuntu?系統(tǒng)下直接使用?sudo apt-get install tmux?安裝即可。使用以下步驟將應(yīng)用程序后臺(tái)運(yùn)行。
- ?
tmux new -s gf-app?; - 在新終端窗口中執(zhí)行?
./gf-app?即可; - 使用?
ctrl + B & D?快捷鍵可以退出當(dāng)前終端窗口; - 使用?
tmux attach -t gf-app?可進(jìn)入到之前的終端窗口;
3. supervisor
?supervisor?是用?Python?開發(fā)的一套通用的進(jìn)程管理程序,能將一個(gè)普通的命令行進(jìn)程變?yōu)楹笈_(tái)?daemon?,并監(jiān)控進(jìn)程狀態(tài),異常退出時(shí)能自動(dòng)重啟。官方網(wǎng)站:http://supervisord.org/ 常見配置如下:
[program:gf-app]
user = root
directory = /var/www
command = /var/www/main
stdout_logfile = /var/log/gf-app-stdout.log
stderr_logfile = /var/log/gf-app-stderr.log
autostart = true
autorestart = true使用步驟如下:
- 使用?
sudo service supervisor start?啟動(dòng)?supervisor?服務(wù); - 創(chuàng)建應(yīng)用配置文件?
/etc/supervisor/conf.d/gf-app.conf?, 內(nèi)容如上; - 使用?
sudo supervisorctl?進(jìn)入?supervisor?管理終端; - 使用?
reload?重新讀取配置文件并重啟當(dāng)前?supoervisor?管理的所有進(jìn)程; - 也可以使用?
update?重新加載配置(默認(rèn)不重啟),隨后使用?start gf-app?啟動(dòng)指定的應(yīng)用程序; - 隨后可以使用?
status?指令查看當(dāng)前?supervisor?管理的進(jìn)程狀態(tài);
踩坑分享經(jīng)驗(yàn):
- ?
conf?配置文件變更后需要在?supervisorctl?中執(zhí)行?reload?才能更新使用到最新的配置。 - ?
directory?配置一般是不能缺少的,指定當(dāng)前的工作目錄路徑,且必須配置在?command?之前。 - ?
command?命令需要使用絕對(duì)路徑,否則會(huì)找不到執(zhí)行文件。
4. systemctl
?Systemd是 ?Linux系統(tǒng)工具,用來啟動(dòng)守護(hù)進(jìn)程,已成為大多數(shù)發(fā)行版的標(biāo)準(zhǔn)配置。
而 ?systemctl是 ?Systemd的主命令,用于管理系統(tǒng)。
其實(shí)我們大部分服務(wù)都有使用 ?systemctl管理,比如 ?MySQL?、?Nginx等等。
常見配置如下:
[Unit]
# 單元描述
Description=GF APP
# 在什么服務(wù)啟動(dòng)之后再執(zhí)行本程序
After=mysql.service
[Service]
Type=simple
# 程序執(zhí)行的目錄
WorkingDirectory=/data/server/gfapp/
# 啟動(dòng)的腳本命令
ExecStart=/data/server/gfapp/gfapp
# 重啟條件
Restart=always
# 幾秒后重啟
RestartSec=5
[Install]
WantedBy=multi-user.target使用方法:
- 創(chuàng)建應(yīng)用配置文件 ?
/etc/systemd/system/gfapp.service?, 內(nèi)容如上; - 使用 ?
systemctl daemon-reload? 重新加載服務(wù); - 執(zhí)行 ?
systemctl start gfapp? 來啟動(dòng)服務(wù); - 最后執(zhí)行 ?
systemctl status gfapp? 來查看服務(wù)運(yùn)行的狀態(tài)信息; - 執(zhí)行 ?
systemctl enable gfapp? 將服務(wù)添加到開機(jī)啟動(dòng)項(xiàng); - 注意:執(zhí)行的 ?
gfapp是使用文件名作為服務(wù)名; - 常見的命令有: ?
start?(啟動(dòng)), ?stop?(停止), ?restart?(重啟), ?status?(查看運(yùn)行狀態(tài)), ?enable?(添加到開機(jī)啟動(dòng)項(xiàng)), ?disable?(將程序從開機(jī)啟動(dòng)中移除)
5. screen
?Screen是一款由 ?GNU計(jì)劃開發(fā)的用于命令行終端切換的自由軟件。用戶可以通過該軟件同時(shí)連接多個(gè)本地或遠(yuǎn)程的命令行會(huì)話,并在其間自由切換。?GNU Screen?可以看作是窗口管理器的命令行界面版本。它提供了統(tǒng)一的管理多個(gè)會(huì)話的界面和相應(yīng)的功能。
安裝方式:
- ?
sudo apt install -y screen? (debian 系列) - ?
sudo yum install -y screen? (centos)
常用參數(shù):
- ?
screen -S yourname? -> 新建一個(gè)叫 yourname 的 session - ?
screen -ls? -> 列出當(dāng)前所有的 session - ?
screen -r yourname? -> 回到 yourname 這個(gè) session - ?
screen -d yourname? -> 遠(yuǎn)程detach某個(gè) session - ?
screen -d -r yourname? -> 結(jié)束當(dāng)前 session 并回到 yourname 這個(gè) session
使用方法:
- 使用命令 ?
screen -S gfapp? 創(chuàng)建一個(gè) ?session?; - 在新終端窗口中執(zhí)行 ?
./gf-app? 即可; - 執(zhí)行 ?
ctrl-a?, ?ctrl-d? 暫時(shí)離開當(dāng)前session; - 執(zhí)行 ?
screen -r gfapp? 返回命令窗口; 若返回不成功, 可能是該窗口被占用(?Attached?)了, 可以嘗試使用 ?screen -Dr gfapp?; - 執(zhí)行 ?
screen -X -S gfapp quit? 結(jié)束程序;
新聞名稱:創(chuàng)新互聯(lián)GoFrame教程:GoFrame項(xiàng)目部署-獨(dú)立部署
標(biāo)題網(wǎng)址:http://m.fisionsoft.com.cn/article/dhgpghp.html


咨詢
建站咨詢
