nohup

简介nohup 是 “no hang up” 的缩写,用于确保命令在终端关闭后仍能继续运行。

基本用法

1
nohup python train.py > output.log 2>&1 &
  • nohup :使命令忽略终端挂起信号。
  • python train.py :待执行的程序。
  • > output.log :将标准输出重定向到 output.log
  • 2>&1 :将标准错误重定向到标准输出。
  • & :将命令置于后台运行。

查看进程 :使用 psjobs 查看运行中的进程。

注意事项nohup 适合简单任务,终止进程时需手动查找 PID。

tmux

简介tmux 是终端复用工具,允许用户在一个终端窗口中运行多个会话、窗口和窗格。

启动与连接

1
2
tmux new -s mysession    # 创建新会话 自己用:prompt
tmux attach -t mysession # 重新连接已存在的会话

基本操作

带tmux的都在tmux外输入,快捷键都在tmux内按。

  • 分离会话 :按 Ctrl + b 后输入 d,会话将继续在后台运行。
  • 查看会话tmux ls 列出所有活动会话。
  • 关闭会话tmux kill-session -t mysession 彻底关闭会话及其内部命令。
  • 查看历史会话:按 Ctrl + b 后输入 [,按方向键查看历史记录,想不看了按q。在tmux内,输入指令时无法看历史记录,看历史记录时不能输入指令。

窗口与窗格管理

  • 列出所有窗口tmux list-windowstmux ls-w
  • 创建新窗口 :按 Ctrl + b 后输入 c
  • 查看当前会话所有窗口Ctrl + b 然后 按 w。有10个以上窗口则用这个切换,按方向键选择,然后回车进入对应窗口。
  • 切换窗口 :切换到窗口2 tmux select-window -t 2,或Ctrl + b 然后 按 窗口编号 (0~9)。

优势 :适合复杂实验环境,支持多任务并行处理,可随时恢复会话。

screen

简介screen 是终端复用工具,可在一个终端窗口里开多个虚拟终端。

基本用法

1
2
3
screen -S session_name    # 创建会话
screen -ls # 查看所有会话
screen -r session_name # 重新连接会话
  • 分离会话 :按 Ctrl + a 后输入 d
  • 关闭会话 :输入 exit

优势场景

  • 远程工作不断线 :断网后可重新连接,任务继续运行。
  • 多任务并行管理 :一个窗口开多个会话,轻松切换。
  • 后台运行任务 :关闭终端后任务仍继续执行。

三者对比

工具 优势 劣势
nohup 简单易用,适合短期任务 无法实时查看输出,终止进程需查找 PID
tmux 支持多会话、多窗口、多窗格,可实时查看 学习曲线较陡
screen 功能类似 tmux,兼容性好 使用场景相对 tmux 较少

总结

  • 短期任务 :使用 nohup 快速启动并后台运行。
  • 复杂多任务 :使用 tmux 创建多会话、多窗口进行管理。
  • 兼容性需求screen 是不错的选择。

根据具体需求选择合适的工具,可有效提升远程实验的效率与便捷性。