在Linux中,nohup
(no hang-up)命令用于在用户退出登录后继续运行指定的程序或服务。这对于确保服务在终端关闭或网络断开后仍然持续运行非常有用。以下是使用nohup
命令的步骤和示例:
nohup command [arguments] &
command
:要运行的命令或脚本。[arguments]
:传递给命令的参数。&
:将命令放入后台运行。假设你有一个名为my_service.sh
的脚本,你想在后台运行它,并且即使你退出登录,它也应该继续运行。
编写脚本:
#!/bin/bash
echo "Service started at $(date)"
while true; do
echo "Service is running..."
sleep 10
done
赋予执行权限:
chmod +x my_service.sh
使用nohup
运行脚本:
nohup ./my_service.sh &
nohup
:确保命令在用户退出登录后继续运行。./my_service.sh
:要运行的脚本。&
:将命令放入后台运行。默认情况下,nohup
会将输出重定向到nohup.out
文件。你可以查看这个文件来监控脚本的输出。
tail -f nohup.out
重定向输出:你可以将标准输出和标准错误重定向到不同的文件。
nohup ./my_service.sh > output.log 2> error.log &
指定工作目录:如果你需要指定脚本的工作目录,可以使用cd
命令。
nohup cd /path/to/directory && ./my_service.sh &
nohup
命令会忽略挂起信号(SIGHUP),因此即使终端关闭,命令也会继续运行。&
将命令放入后台运行时,确保你有足够的权限来运行该命令。read
),这些命令可能会在后台运行时出现问题。通过以上步骤,你可以使用nohup
命令确保你的服务在Linux系统中持续运行。