You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 14 Next »
使用GF开发的应用程序可以独立地部署到服务器上,设置为后台守护进程运行即可。这种模式常用在简单的API服务项目中。
GF
服务器我们推荐使用*nix服务器系列(包括:Linux, MacOS, *BSD),以下使用Ubuntu系统为例,介绍如何部署使用GF框架开发的项目。
*nix
Linux
MacOS
*BSD
Ubuntu
nohup
我们可以使用简单的nohup命令来运行应用程序,使其作为后台守护进程运行,即使远程连接的SSH断开也不会影响程序的执行。在流行的Linux发行版中往往都默认安装好了nohup命令工具。 命令如下:
nohup ./gf-app &
tmux
tmux是一款Linux下的终端复用工具,可以开启不同的终端窗口来将应用程序作为后台守护进程执行,即使远程连接的SSH断开也不会影响程序的执行。 在ubuntu系统下直接使用sudo apt-get install tmux安装即可。使用以下步骤将应用程序后台运行。
SSH
ubuntu
sudo apt-get install tmux
tmux new -s gf-app
./gf-app
ctrl
B & D
tmux attach -t gf-app
supervisor
supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。官方网站:http://supervisord.org/ 常见配置如下:
Python
daemon
[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
/etc/supervisor/conf.d/gf-app.conf
sudo supervisorctl
reload
supoervisor
update
start gf-app
status
踩坑分享经验:
conf
supervisorctl
directory
command
systemctl
Systemd 是 Linux 系统工具,用来启动守护进程,已成为大多数发行版的标准配置。而 systemctl 是 Systemd 的主命令,用于管理系统。可以参考 阮一峰对于 Systemd 的解读 ,文章的第四、五章节。其实我们大部分服务都有使用 systemctl 管理,比如 MySQL、Nginx 等等。常见配置如下:
Systemd
MySQL、Nginx
[Unit] # 单元描述 Description=GF APP # 在什么服务启动之后再执行本程序 After=mysql.service [Service] Type=simple # 程序执行的目录 WorkingDirectory=/data/server/gfapp/ # 启动的脚本命令 ExecStart=/data/server/gfapp/gfapp # 重启条件 Restart=alway # 几秒后重启 RestartSec=5 [Install] WantedBy=multi-user.target
使用方法:
/etc/systemd/system/gfapp.service
systemctl daemon-reload
systemctl start gfapp
systemctl status gfapp
systemctl enable gfapp
gfapp
start(启动), stop(停止), restart(重启), status(查看运行状态), enable(添加到开机启动项), disable(将程序从开机启动中移除)
screen
Screen 是一款由 GNU 计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。安装方式:
Screen
GNU
GNU Screen
sudo apt install -y screen (debian 系列)
sudo apt install -y screen
debian
sudo yum install -y screen (centos)
sudo yum install -y screen
centos
常用参数:
screen -S yourname
screen -ls
screen -r yourname
screen -d yourname
screen -d -r yourname
使用方法:
screen -S gfapp
ctrl-a, ctrl-d
screen -r gfapp
Attached
screen -Dr gfapp
screen -X -S gfapp quit