nohup
和 screen
是两个在 Linux 系统中用于在后台运行程序的命令,它们有一些相似之处,但也有很多不同点。以下是它们之间的主要对比:
nohup
(no hang up)命令允许你在用户退出登录后继续运行程序。nohup command &
command
是你想要在后台运行的命令。&
符号将命令放入后台执行。nohup
会将标准输出和标准错误输出重定向到当前目录下的 nohup.out
文件。nohup command > output.log 2>&1 &
nohup
不提供会话管理功能,一旦程序启动,你就无法再与之交互,除非重新登录。screen
是一个终端复用器,允许你在一个物理终端上创建多个虚拟终端会话。screen -S session_name
# 在新的screen会话中运行命令
command
# 按 Ctrl+A 然后按 D 键来分离会话
# 使用 screen -r session_name 来重新连接会话
screen
允许你在每个会话中独立地重定向输出。screen
时指定输出文件,或者在会话内部进行重定向。screen
的各种快捷键和命令。screen
。nohup
是一个不错的选择。screen
是更好的选择。在实际使用中,你也可以结合使用这两个工具,例如使用 nohup
启动一个长时间运行的任务,然后使用 screen
来管理这个任务。