作为稍微复杂的脚本的一部分,我需要告诉服务器运行模拟。通常,我会这样做ssh user@server 'simulation/script'。但是,这样做会使ssh会话保持活动状态'simulation/script',直到完成为止,这对我来说是不希望的。
ssh user@server 'simulation/script'
'simulation/script'
我最近了解了该at命令,它似乎很适合我的问题。 我现在要执行的操作是将ssh插入服务器,并at在5秒钟内运行模拟脚本(足够多的时间关闭ssh连接)。因此,一旦ssh连接在5秒钟内关闭,服务器将启动仿真,而无需ssh连接保持活动状态。
at
我遇到的麻烦是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秒钟”运行命令的信息?
在没 几秒钟 的时间:
man at 说过 :
man at
* 日期说明必须遵循一天中时间的说明。您还可以给出类似现在的时间+计算时间单位,其中时间单位可以是分钟,小时,天或周,并且您可以告诉我们今天的工作,在今天加上后缀,明天开始工作在明天加上时间。
因此at,您可以使用一个sleep我认为的代替。
sleep
看到 man 1 sleep
man 1 sleep
如果您想ssh user@server 'simulation/script'不等待就运行,只需执行以下操作:
ssh user@server 'simulation/script' &
该命令将在后台运行。
而且,正如Rawkode所说,这nohup将对您有所帮助。
nohup
所以最后:
nohup ssh user@server 'simulation/script' &
使用nohup,您可以退出终端并ssh继续运行。
ssh
EDIT:如果要运行ssh命令并关闭连接:
EDIT
ssh user@server 'simulation/script &'