我正在使用扭矩在远程服务器上运行作业。我目前有一个恼人的问题。
当我运行我的工作时,这就是我目前所做的:
- 通过 Teamviewer 登录另一台计算机
- 从该计算机
ssh
到远程服务器也是如此ssh [email protected]
在这里,我运行我的作业脚本
sh verycomplicatedrunscript.sh
,它向用户回显如下内容:I am now running job 1...
I am now running job 2...
I am now running job 3...
I am now running job 4...
只是为了表明它正在运行以及它正在运行什么。
唯一的问题是,这需要几天的时间,因为工作量有点大,有数千个。
现在,我想绕过 Teamviewer 步骤,直接ssh
从我自己的计算机进入远程。但如果我这样做,并运行我的作业脚本,然后关闭终端;它会杀死该进程(这就是为什么我目前在另一台计算机上运行它,我可以通过打开终端来让它运行几天)。
有什么方法可以在远程服务器上执行脚本,然后注销而不会终止我的作业脚本的执行?
谢谢
解决方案
我最终使用了这个screen
选项,坦率地说,这真是太棒了。
我的工作现在正在运行
screen sh awesomejobscript.sh option1 option2 option3
答案1
只需使用 nohup 即可:
$ ssh [email protected] "nohup complexscript.sh > mylog 2>&1 &"
答案2
事实证明,除了上述一种之外,还有很多解决方案;
screen sh jobscript.sh op1 op2 op3
效果也很好。