Bash Shell脚本命令超时

Bash Shell脚本命令超时,bash,shell,ntpd,Bash,Shell,Ntpd,我正在尝试运行一个命令,但是如果该命令在一段时间内没有成功(比如说30秒),请取消该命令并失败。脚本相当简单,我只是暂停ntpd,然后强制时间同步并开始。但是,如果存在无效的ntp服务器,则会挂起 systemctl stop ntpd ntpd -gq systemctl start ntpd 我的想法是,我试着在后台运行这个命令,每10秒检查一次,看看这个命令是否还在尝试运行。在3次检查后,如果我看到“ntpd-gq”,我将终止进程并返回一个失败。这是正确的方法还是有内置的时间处理功能?s

我正在尝试运行一个命令,但是如果该命令在一段时间内没有成功(比如说30秒),请取消该命令并失败。脚本相当简单,我只是暂停ntpd,然后强制时间同步并开始。但是,如果存在无效的ntp服务器,则会挂起

systemctl stop ntpd
ntpd -gq
systemctl start ntpd

我的想法是,我试着在后台运行这个命令,每10秒检查一次,看看这个命令是否还在尝试运行。在3次检查后,如果我看到“ntpd-gq”,我将终止进程并返回一个失败。这是正确的方法还是有内置的时间处理功能?

shell没有这种时间处理功能


在后台运行进程并按照您的建议定期检查是处理此问题的最佳方法。

我建议使用systemd中内置的超时配置。使用超时和重新启动自定义ntpd.service systemd配置文件。让我来做这项工作。