【发布时间】:2012-12-04 01:27:06
【问题描述】:
作为一个稍微复杂的脚本的一部分,我需要告诉服务器运行模拟。通常,我会通过ssh user@server 'simulation/script' 来实现这一点。但是,这样做会使 ssh 会话保持活动状态,直到完成 'simulation/script',这对我来说是不可取的。
我最近了解了at 命令,它似乎很适合我的问题。
我现在想要做的是 ssh 进入我的服务器,at 我的模拟脚本在 5 秒内运行(足够关闭 ssh 连接的时间)。因此,一旦 ssh 连接在 5 秒内关闭,服务器将开始模拟,而无需 ssh 连接保持活动状态。
我遇到的问题是at 需要的时间表达式来安排“从现在起 5 秒后”的作业
我尝试了以下时间表达式,所有这些都给我错误:
now + 5 seconds
now + 5 sec
now + 5 s
now + 5seconds
now + 5sec
now + 5 s
now+5sec
now+5seconds
now+5s
我怎样才能让我的at 在“5 秒后”运行我的命令?
【问题讨论】:
-
与其乱搞
at,或许你只想要ssh user@server bash -c '"simulation/script &"'... -
我在
package.json脚本中使用它,所以我必须这样做以防止进程被阻止:( sleep 5 && delayed_command ) & immediate_command。如果您不希望输出显示在STDOUT中,我还在delayed_command之后添加了> /dev/null 2>&1。
标签: linux bash scheduled-tasks