nohup(no hang-up)命令在Ubuntu中用于在后台运行程序,即使关闭终端或断开SSH连接,程序也会继续运行。以下是一些使用nohup命令的技巧:
运行单个命令:
nohup your_command &
例如:
nohup python3 my_script.py &
将输出重定向到文件:
默认情况下,nohup会将标准输出和标准错误输出重定向到nohup.out文件。你可以显式指定输出文件:
nohup your_command > output.log 2>&1 &
这会将标准输出和标准错误输出都重定向到output.log文件。
后台运行多个命令:
你可以使用&将多个命令放在同一行中,并在最后加上nohup:
nohup (command1 & command2 & command3) &
使用disown命令:
如果你已经启动了一个后台进程,可以使用disown命令将其从当前shell会话中分离,使其不受终端关闭的影响:
your_command &
disown
使用screen或tmux:
对于需要长时间运行的任务,使用screen或tmux会话管理器更为灵活。它们允许你在断开连接后重新连接到同一个会话:
screen -S mysession
your_command
# 按 Ctrl+A 然后 D 断开连接
# 重新连接
screen -r mysession
设置环境变量:
如果你需要在运行命令前设置一些环境变量,可以在nohup命令前指定:
nohup MY_VAR=value your_command &
使用nice调整优先级:
如果你想调整后台进程的优先级,可以使用nice命令:
nohup nice -n 10 your_command &
nohup.out文件,避免其变得过大。top、htop或ps命令监控后台进程的资源使用情况。通过这些技巧,你可以更有效地使用nohup命令在Ubuntu中运行后台任务。