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
和 &
来管理后台进程。