学习心得:在后台运行Orca计算的两种方法,解决SSH断开时计算中止的问题
计算用的工作站放在楼下,为了避免查看计算情况时经常上下来回跑,于是在工作站上启用了openSSH。但发现在终端使用命令
开始计算之后,如果断开SSH,则运行中的orca也将一并被中止。
经google后发现,原因在于每个SSH会话都是一个独立的进程组,当SSH中断时,其下的进程也会一并中止。所以,orca会跟着SSH一起断开。 想办法一直保持SSH链接肯定不是上策,毕竟计算过夜是非常正常的情况。
找到了如下两种解决方法:
使用 配合标记
如果我们可以忽略SIGHUP信号,关掉窗口应该就不会影响程序的运行了。nohup命令可以达到这个目的,如果程序的标准输出/标准错误是终端,nohup默认将其重定向到nohup.out文件。值得注意的是nohup命令只是使得程序忽略SIGHUP信号,还需要使用标记&把它放在后台运行。
需要注意的是,计算的输出会自动定向到Nohup.out而不是我们指定的xxx.out文件。
使用GNU screen(推荐)
登录SSH后,先启用screen
出现提示界面后,按空格或者回车跳过。 然后正常启动orca计算,在这里我们使用 来代替 ,作用是,在终端显示输出的同时,将输出内容保存到指定文件中,方便我们查看任务是否结束和输出信息。
然后按住 ,敲一下 ,再敲一下 ,再松开 。(注意按键过程中 始终是按下的) 这样我们就将运行orca的终端切换到后台挂起。 这时,可以放心的exit断开SSH而不用担心orca被中断了。 如果要看计算是否完成,键入 ,会有如下显示
7943即使我们挂起的orca运行的终端窗口ID,此时键入 即可恢复该窗口。 查看终端输出是否结束就知道orca是否计算完成啦。
linux 技巧:使用 screen 管理你的远程会话
https://www.ibm.com/developerworks/cn/linux/l-cn-screen/index.html
领取专属 10元无门槛券
私享最新 技术干货