【问题标题】:Shell Script command timeout [duplicate]Shell 脚本命令超时 [重复]
【发布时间】:2023-12-10 21:30:01
【问题描述】:

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

systemctl stop ntpd
ntpd -gq
systemctl start ntpd

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

【问题讨论】:

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

标签: bash shell ntpd


【解决方案1】:

shell 没有这种时间处理。

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

【讨论】: