阅读量:3
nohup 命令本身没有直接的超时自动终止功能。但是,你可以结合其他命令来实现这个需求。这里有一个使用 timeout 命令的例子:
timeout 10s nohup your_command &
在这个例子中,your_command 是你想要执行的命令。timeout 命令会在 10 秒后自动终止 your_command。& 符号将命令放入后台运行。
如果你想要在超时后获取命令的输出,可以使用以下方法:
- 将输出重定向到文件:
timeout 10s nohup your_command > output.log 2>&1 &
这会将标准输出和标准错误输出都重定向到 output.log 文件中。
- 使用管道和
wait命令:
timeout 10s nohup your_command > output.log 2>&1 &
timeout_pid=$!
wait $timeout_pid
if [ $? -eq 124 ]; then
echo "Command timed out"
else
echo "Command completed successfully"
fi
这个例子中,我们将 nohup 命令放入后台运行,并将其进程 ID 存储在 timeout_pid 变量中。然后,我们使用 wait 命令等待该进程结束。如果进程因为超时而终止,wait 命令会返回 124,我们可以根据这个返回值判断命令是否超时。
以上就是关于“nohup如何设置超时自动终止”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm