nohup(no hang-up)命令在 Ubuntu 和其他 Unix-like 系统中用于在后台运行程序,即使关闭终端或断开连接,程序也会继续运行。以下是一些使用 nohup 命令的技巧:
运行单个命令:
nohup command &
例如,运行一个 Python 脚本:
nohup python3 myscript.py &
重定向输出:
默认情况下,nohup 会将标准输出和标准错误输出重定向到 nohup.out 文件。你可以自定义输出文件:
nohup command > output.log 2>&1 &
这样,标准输出和标准错误都会被写入 output.log 文件。
后台运行多个命令:
你可以使用 & 将多个命令放在同一行并后台运行:
nohup (command1 & command2) &
使用 disown 命令:
如果你已经在前台运行了一个命令,可以使用 nohup 和 & 将其移到后台,然后使用 disown 命令将其从当前 shell 的作业表中移除:
nohup command &
disown
使用 screen 或 tmux:
对于更复杂的任务管理,可以考虑使用 screen 或 tmux。这些工具允许你在多个会话之间切换,并且即使断开连接,会话也会继续运行。
screen -S mysession
# 在 screen 会话中运行命令
nohup command &
# 按 Ctrl+A 然后 D 断开连接
监控后台进程:
使用 ps 命令可以查看后台进程:
ps aux | grep nohup
或者使用 pgrep 命令:
pgrep -af nohup
通过这些技巧,你可以更有效地使用 nohup 命令来管理后台任务。