nohup(no hang-up)命令在Linux中用于在用户退出登录后继续运行指定的命令或程序。它可以使进程忽略挂起(SIGHUP)信号,从而在关闭终端或断开SSH连接后仍然保持运行。
nohup [选项] [命令] [参数...]
-h:显示帮助信息。-v:显示版本信息。-c:不使用当前的环境变量,而是使用默认的环境变量。在后台运行一个命令
nohup your_command &
这会在后台运行your_command,并且即使你退出登录,它也会继续运行。输出会被重定向到当前目录下的nohup.out文件中。
指定输出文件
nohup your_command > output.log 2>&1 &
这会将标准输出和标准错误都重定向到output.log文件中,并且在后台运行your_command。
使用环境变量
nohup env > env_output.log 2>&1 &
这会运行env命令,并将所有环境变量输出到env_output.log文件中。
指定工作目录
nohup cd /path/to/directory && your_command &
这会先切换到指定的目录,然后在该目录下运行your_command。
使用nohup运行脚本
nohup ./your_script.sh &
这会在后台运行your_script.sh脚本,并且即使你退出登录,它也会继续运行。
nohup命令会忽略挂起信号(SIGHUP),但不会忽略其他信号,如SIGINT(Ctrl+C)。nohup时,建议将输出重定向到文件,以避免输出到终端导致混乱。systemd服务。通过这些示例和说明,你应该能够理解并使用nohup命令在Linux中运行后台进程。