一尘不染

从现在起5秒后执行命令`

linux

作为稍微复杂的脚本的一部分,我需要告诉服务器运行模拟。通常,我会这样做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秒钟”运行命令的信息?


阅读 443

收藏
2020-06-07

共1个答案

一尘不染

在没 几秒钟 的时间:

man at 说过 :

* 日期说明必须遵循一天中时间的说明。您还可以给出类似现在的时间+计算时间单位,其中时间单位可以是分钟,小时,天或周,并且您可以告诉我们今天的工作,在今天加上后缀,明天开始工作在明天加上时间。

因此at,您可以使用一个sleep我认为的代替。

看到 man 1 sleep


如果您想ssh user@server 'simulation/script'不等待就运行,只需执行以下操作:

ssh user@server 'simulation/script' &

该命令将在后台运行。

而且,正如Rawkode所说,这nohup将对您有所帮助。

所以最后:

nohup ssh user@server 'simulation/script' &

使用nohup,您可以退出终端并ssh继续运行。


EDIT:如果要运行ssh命令并关闭连接:

ssh user@server 'simulation/script &'
2020-06-07