...
tmux
是一款Linux下的终端复用工具,可以开启不同的终端窗口来将应用程序作为后台守护进程执行,即使远程连接的SSH断开也不会影响程序的执行。 在ubuntu
系统下直接使用sudo apt-get install tmux
安装即可。使用以下步骤将应用程序后台运行。 1.
tmux new -s gf-app
;
...
- 在新终端窗口中执行
./gf-app
即可;
...
- 使用
ctrl
+B & D
快捷键可以退出当前终端窗口;
...
- 使用
tmux attach -t gf-app
可进入到之前的终端窗口;
3. supervisor
supervisor
是用Python
开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon
,并监控进程状态,异常退出时能自动重启。官方网站:http://supervisord.org/ 常见配置如下:
[program:gf-app]
user=root
command=/var/www/main
stdout_logfile=/var/log/gf-app-stdout.log
stderr_logfile=/var/log/gf-app-stderr.log
autostart=true
autorestart=true
使用步骤如下: 1.
- 使用
sudo service supervisor start
启动supervisor
服务;
...
- 创建应用配置文件
/etc/supervisor/conf.d/gf-app.conf
, 内容如上;
...
- 使用
sudo supervisorctl
进入supervisor
管理终端;
...
- 使用
reload
重新读取配置文件并重启当前supoervisor
管理的所有进程;
...
- 也可以使用
update
重新加载配置(默认不重启),随后使用start gf-app
启动指定的应用程序;
...
- 随后可以使用
status
指令查看当前supervisor
管理的进程状态;
4. systemctl
Systemd
是 Linux
系统工具,用来启动守护进程,已成为大多数发行版的标准配置。
而 systemctl
是 Systemd
的主命令,用于管理系统。可以参考阮一峰对于 Systemd
的解读,文章的第四、五章节:Unit
其实我们大部分服务都有使用 systemctl
管理,比如 MySQL、Nginx
等等。
常见配置如下:
...