nohup(no hang-up的缩写)命令用于在Linux和Unix系统上运行命令,使其在用户退出登录或关闭终端后继续运行。以下是一些nohup命令的使用技巧:
运行单个命令
nohup command &
例如:
nohup sleep 3600 &
将输出重定向到文件
默认情况下,nohup会将标准输出和标准错误输出重定向到nohup.out文件。你可以显式指定输出文件:
nohup command > output.log 2>&1 &
这里,2>&1表示将标准错误输出重定向到标准输出,然后一起重定向到output.log文件。
后台运行多个命令
可以使用&将多个命令放在同一行,并用;分隔:
nohup (command1; command2) > output.log 2>&1 &
使用setsid
setsid可以创建一个新的会话,使进程完全独立于终端:
nohup setsid command > output.log 2>&1 &
监控进程
使用ps命令监控nohup启动的进程:
ps -ef | grep nohup
终止进程
找到进程ID(PID)后,使用kill命令终止进程:
kill -9 PID
使用nohup结合screen或tmux
这些终端复用工具可以在断开连接后重新连接到之前的会话:
screen -S session_name
command
# 按 Ctrl+A 然后 D 断开连接
# 重新连接
screen -r session_name
nohup.out文件,避免磁盘空间被占满。通过这些技巧,你可以更有效地使用nohup命令来管理后台进程。