W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
使用?GoFrame
?開(kāi)發(fā)的應(yīng)用程序可以獨(dú)立地部署到服務(wù)器上,設(shè)置為后臺(tái)守護(hù)進(jìn)程運(yùn)行即可。這種模式常用在簡(jiǎn)單的API服務(wù)項(xiàng)目中。
服務(wù)器我們推薦使用?*nix
?服務(wù)器系列(包括:?Linux
?, ?MacOS
?, ?*BSD
?),以下使用?Ubuntu
?系統(tǒng)為例,介紹如何部署使用?GoFrame
?框架開(kāi)發(fā)的項(xiàng)目。
我們可以使用簡(jiǎn)單的?nohup
?命令來(lái)運(yùn)行應(yīng)用程序,使其作為后臺(tái)守護(hù)進(jìn)程運(yùn)行,即使遠(yuǎn)程連接的?SSH
?斷開(kāi)也不會(huì)影響程序的執(zhí)行。在流行的?Linux
?發(fā)行版中往往都默認(rèn)安裝好了?nohup
?命令工具。 命令如下:
nohup ./gf-app &
?tmux
?是一款?Linux
?下的終端復(fù)用工具,可以開(kāi)啟不同的終端窗口來(lái)將應(yīng)用程序作為后臺(tái)守護(hù)進(jìn)程執(zhí)行,即使遠(yuǎn)程連接的?SSH
?斷開(kāi)也不會(huì)影響程序的執(zhí)行。 在?ubuntu
?系統(tǒng)下直接使用?sudo apt-get install tmux
?安裝即可。使用以下步驟將應(yīng)用程序后臺(tái)運(yùn)行。
tmux new -s gf-app
?;
./gf-app
?即可;
ctrl + B & D
?快捷鍵可以退出當(dāng)前終端窗口;
tmux attach -t gf-app
?可進(jìn)入到之前的終端窗口;?supervisor
?是用?Python
?開(kāi)發(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/ 常見(jiàn)配置如下:
[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ù);
/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í)行文件。?Systemd
是 ?Linux
系統(tǒng)工具,用來(lái)啟動(dòng)守護(hù)進(jìn)程,已成為大多數(shù)發(fā)行版的標(biāo)準(zhǔn)配置。
而 ?systemctl
是 ?Systemd
的主命令,用于管理系統(tǒng)。
其實(shí)我們大部分服務(wù)都有使用 ?systemctl
管理,比如 ?MySQL
?、?Nginx
等等。
常見(jiàn)配置如下:
[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
使用方法:
/etc/systemd/system/gfapp.service
?, 內(nèi)容如上;
systemctl daemon-reload
? 重新加載服務(wù);
systemctl start gfapp
? 來(lái)啟動(dòng)服務(wù);
systemctl status gfapp
? 來(lái)查看服務(wù)運(yùn)行的狀態(tài)信息;
systemctl enable gfapp
? 將服務(wù)添加到開(kāi)機(jī)啟動(dòng)項(xiàng);
gfapp
是使用文件名作為服務(wù)名;
start
?(啟動(dòng)), ?stop
?(停止), ?restart
?(重啟), ?status
?(查看運(yùn)行狀態(tài)), ?enable
?(添加到開(kāi)機(jī)啟動(dòng)項(xiàng)), ?disable
?(將程序從開(kāi)機(jī)啟動(dòng)中移除)?Screen
是一款由 ?GNU
計(jì)劃開(kāi)發(fā)的用于命令行終端切換的自由軟件。用戶可以通過(guò)該軟件同時(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?;
./gf-app
? 即可;
ctrl-a
?, ?ctrl-d
? 暫時(shí)離開(kāi)當(dāng)前session;
screen -r gfapp
? 返回命令窗口; 若返回不成功, 可能是該窗口被占用(?Attached
?)了, 可以嘗試使用 ?screen -Dr gfapp
?;
screen -X -S gfapp quit
? 結(jié)束程序;Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: