一、nohup
用于让程序在后台持续运行,即使用户退出终端或断开 SSH 连接也不会中断。
# 1. 启动一个 Python 脚本,并在后台运行
nohup python3 app.py &
# 启动一个 Web 服务
nohup node server.js &
& 表示放入后台运行
程序输出会默认写入当前目录下的 nohup.out 文件
-------------------------------------------------------------------------------
2. nohup python3 app.py > myapp.log 2>&1 &
>:重定向标准输出
2>&1:将错误输出也合并到日志中
python 程序文件输出到指定文件
python -u app.py > a.log 2>&1
二、Tmux
Tmux是一个终端复用器,也可以用于后台运行程序。
-
安装
Ubuntu or Debian
sudo apt-get install tmux
CentOS or Fedora
sudo yum install tmux
Mac
brew install tmux
-
session操作(会话/任务)
在普通的终端中,窗口和其中由于session(任务)而启动的进程是连在一起的,关闭窗口,session就结束了,session内部的进程也会终止,不管是否运行完。
tmux可以在命令窗口创建一个session,然后可以通过解绑操作 使其在后端持续运行。即使远程窗口关闭,该程序也仍然在执行,然后通过再次绑定可以查看其运行情况。
1. 建立一个session
tmux new -s your-session-name
2. 然后便进入到了seesion窗口,就可以执行各自运行命令了(后端会持续运行该命令)
python app.py
3. 在tmux窗口中,按下ctrl+b d或者输入以下命令,就会将当前session与窗口分离(解绑),session转到后台执行:
tmux detach
4. 如果你想再次绑定该session(想再次进入看看app.py的运行情况/输出),可以使用命令:
tmux attach -t your-session-name
5. 杀死创建的session
tmux kill-session -t your-session-name
6. 你可以创建多个session进行切换
tmux switch -t your-session-name
7. 对创建的session可以重命名
tmux rename-session -t old-session new-session