linux

nohup如何设置超时自动终止

小樊
49
2025-07-17 03:15:33
栏目: 编程语言

nohup 命令本身没有直接的超时自动终止功能。但是,你可以结合其他命令来实现这个需求。这里有一个使用 timeout 命令的例子:

timeout 10s nohup your_command &

在这个例子中,your_command 是你想要执行的命令。timeout 命令会在 10 秒后自动终止 your_command& 符号将命令放入后台运行。

如果你想要在超时后获取命令的输出,可以使用以下方法:

  1. 将输出重定向到文件:
timeout 10s nohup your_command > output.log 2>&1 &

这会将标准输出和标准错误输出都重定向到 output.log 文件中。

  1. 使用管道和 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,我们可以根据这个返回值判断命令是否超时。

0
看了该问题的人还看了