nohup 命令用于在后台运行程序,即使用户退出登录或关闭终端,程序也会继续运行。& 符号用于将命令放入后台执行。结合使用 nohup 和 & 可以确保程序在后台稳定运行,并且不受终端会话的影响。
以下是一些使用 nohup 和 & 的技巧:
nohup your_command &
your_command 是你想要在后台运行的命令。& 将命令放入后台执行。nohup 确保即使终端关闭,命令也会继续运行。默认情况下,nohup 会将标准输出和标准错误输出重定向到一个名为 nohup.out 的文件中。你可以自定义输出文件的位置和名称:
nohup your_command > output.log 2>&1 &
> 将标准输出重定向到 output.log。2>&1 将标准错误输出重定向到标准输出(即 output.log)。有时你可能希望程序忽略挂起信号(如 SIGHUP),可以使用 -s 选项:
nohup -s your_command &
你可以将多个命令组合在一起,用分号 ; 或逻辑运算符 && 和 || 连接:
nohup (command1; command2) &
或者:
nohup command1 && command2 &
你可以使用 jobs 命令查看当前终端的后台进程:
jobs
或者使用 ps 命令查看所有后台进程:
ps aux | grep your_command
如果你需要终止一个后台进程,可以使用 kill 命令:
kill -9 <PID>
其中 <PID> 是进程的进程ID。
假设你想在后台运行一个 Python 脚本,并将输出重定向到一个文件:
nohup python3 my_script.py > my_script_output.log 2>&1 &
通过这些技巧,你可以更有效地使用 nohup 和 & 来管理后台进程。