nohup
命令本身不提供直接的超时时间设置功能。但是,你可以结合其他命令来实现这个需求。这里有一个使用 timeout
命令与 nohup
结合的例子:
timeout <超时时间(秒)> nohup <你的命令> &
例如,如果你想让一个名为 my_script.sh
的脚本在 3600 秒(1小时)后自动停止运行,你可以这样操作:
timeout 3600 nohup ./my_script.sh &
这将在后台运行 my_script.sh
,并在 1 小时后自动终止它。注意,&
符号将命令放入后台运行。
如果你想在超时后收到通知,可以使用以下命令:
timeout <超时时间(秒)> nohup <你的命令> >/dev/null 2>&1 &
# 获取timeout进程的PID
timeout_pid=$!
# 等待timeout进程结束
wait $timeout_pid
# 检查timeout进程的退出状态
if [ $? -eq 124 ]; then
echo "命令超时"
else
echo "命令正常结束"
fi
这将使 timeout
命令在超时后返回退出状态 124,从而触发通知。