nohup
(no hang-up)命令在 Debian 系统中用于在后台运行程序,即使关闭终端或断开连接,程序也会继续运行。以下是一些使用 nohup
命令的技巧:
运行单个命令:
nohup command &
例如:
nohup sleep 3600 &
重定向输出:
默认情况下,nohup
会将输出重定向到 nohup.out
文件。你可以自定义输出文件:
nohup command > output.log 2>&1 &
这里,>
将标准输出重定向到 output.log
,2>&1
将标准错误重定向到标准输出(即 output.log
)。
后台运行多个命令:
可以使用 &
将多个命令放在同一行中,并用分号分隔:
nohup (command1 & command2 & command3) > output.log 2>&1 &
使用 setsid
:
setsid
命令可以创建一个新的会话,确保进程在断开连接后仍然运行:
nohup setsid command > output.log 2>&1 &
使用 screen
或 tmux
:
这些终端复用工具提供了更强大的后台管理功能:
screen -dmS session_name command
tmux new -d -s session_name command
监控进程:
使用 ps
命令监控后台进程:
ps aux | grep command
终止后台进程:
使用 kill
命令终止后台进程:
kill -9 PID
其中 PID
是进程的进程ID。
假设你想在后台运行一个长时间运行的 Python 脚本,并且希望输出到 my_script.log
文件:
nohup python my_script.py > my_script.log 2>&1 &
如果你希望在后台运行多个命令,并且希望所有输出都记录到同一个日志文件中:
nohup (command1 & command2 & command3) > combined_output.log 2>&1 &
通过这些技巧,你可以更有效地使用 nohup
命令来管理后台进程。