所以我想从我的桌面运行一个程序,但我想让我的桌面“忘记它”,这样如果我的桌面崩溃或关闭它就不会影响 SSH 程序。
换句话说:我希望在远程计算机上独立于我发送任务的计算机执行任务。
我为什么要这样做?因为我在一台巨大的计算机(64 核计算机)上执行一项巨大的任务,这应该需要几天的时间来评估,但我不希望我现在的计算机不得不等待它。上次我的桌面冻结了,我失去了所有的进步。
我可以想象这个问题已经被回答了一百万次,但我不知道我必须搜索什么术语,也不知道这个过程叫什么。
谢谢。
所以我想从我的桌面运行一个程序,但我想让我的桌面“忘记它”,这样如果我的桌面崩溃或关闭它就不会影响 SSH 程序。
换句话说:我希望在远程计算机上独立于我发送任务的计算机执行任务。
我为什么要这样做?因为我在一台巨大的计算机(64 核计算机)上执行一项巨大的任务,这应该需要几天的时间来评估,但我不希望我现在的计算机不得不等待它。上次我的桌面冻结了,我失去了所有的进步。
我可以想象这个问题已经被回答了一百万次,但我不知道我必须搜索什么术语,也不知道这个过程叫什么。
谢谢。
nohup
Ubuntu:sudo apt-get install screen
screen
然后在您丢失 ssh 会话之后。
再次登录 ssh 然后
screen -r
这将恢复 ssh 会话屏幕。
欲了解更多信息man screen
您可以使用(在远程大铁上)批处理(1)命令,因为您需要批处理:
local% ssh remotebigmachine
remotebigmachine% batch << EOB
./myprog param1 param2 param3 > output.txt
EOB
remotebigmachine% exit
在上面,两者local%
都是remotebigmachine%
shell 提示符(实际上它们是不同的)。
顺便说一句,对于运行很多天的批处理计算,编写一些应用程序检查点是值得的(因为即使是超级计算机也可能出现断电或硬件问题)。