0

所以我想从我的桌面运行一个程序,但我想让我的桌面“忘记它”,这样如果我的桌面崩溃或关闭它就不会影响 SSH 程序。

换句话说:我希望在远程计算机上独立于我发送任务的计算机执行任务。

我为什么要这样做?因为我在一台巨大的计算机(64 核计算机)上执行一项巨大的任务,这应该需要几天的时间来评估,但我不希望我现在的计算机不得不等待它。上次我的桌面冻结了,我失去了所有的进步。

我可以想象这个问题已经被回答了一百万次,但我不知道我必须搜索什么术语,也不知道这个过程叫什么。

谢谢。

4

2 回答 2

2

一些方法

  • 利用nohup
  • 使用屏幕

使用屏幕

Ubuntu:sudo apt-get install screen

 screen 

然后在您丢失 ssh 会话之后。

再次登录 ssh 然后

screen -r 

这将恢复 ssh 会话屏幕。

欲了解更多信息man screen

于 2013-08-27T07:52:22.580 回答
1

您可以使用(在远程大铁上)批处理(1)命令,因为您需要批处理

  local% ssh remotebigmachine
  remotebigmachine% batch << EOB
     ./myprog param1 param2 param3 > output.txt
  EOB
  remotebigmachine% exit

在上面,两者local%都是remotebigmachine%shell 提示符(实际上它们是不同的)。

顺便说一句,对于运行很多天的批处理计算,编写一些应用程序检查点是值得的(因为即使是超级计算机也可能出现断电或硬件问题)。

于 2013-08-27T07:48:45.113 回答