nohup(no hang-up)命令是 Linux 系统中用于在用户退出登录后继续运行指定命令或脚本的工具。通过使用 nohup 命令,可以确保进程在关闭终端或注销后仍然继续运行。以下是如何利用 nohup 命令实现 Linux 进程持久化的步骤:
运行单个命令:
nohup your_command &
例如:
nohup sleep 3600 &
这将使 sleep 3600 命令在后台运行,并且即使关闭终端,该命令也会继续执行。
运行脚本:
nohup ./your_script.sh &
例如:
nohup ./my_script.sh &
默认情况下,nohup 会将命令的输出重定向到 nohup.out 文件中。如果你想指定输出文件,可以使用以下语法:
nohup your_command > output.log 2>&1 &
> 将标准输出重定向到 output.log。2>&1 将标准错误输出重定向到标准输出,即 output.log。例如:
nohup my_script.sh > my_output.log 2>&1 &
你可以使用 ps 命令来查看由 nohup 启动的进程:
ps aux | grep nohup
或者更具体地查找某个命令的进程:
ps aux | grep your_command
如果你需要终止由 nohup 启动的进程,可以使用 kill 命令。首先找到进程的 PID(进程 ID),然后使用 kill 命令终止它:
kill -9 PID
例如:
kill -9 12345
nohup 命令后面必须加上 & 符号,以确保命令在后台运行。nohup 启动的进程会继承当前用户的环境变量,但某些环境变量可能不会传递。通过以上步骤,你可以利用 nohup 命令实现 Linux 进程的持久化,确保在关闭终端或注销后进程仍然继续运行。