屏幕会话断开并重新连接后 Matlab 崩溃

屏幕会话断开并重新连接后 Matlab 崩溃

请原谅我转发了 matlab 答案。这在那里没有收到任何回复。我会尝试在这篇文章中更详细地介绍一下。

http://www.mathworks.com/matlabcentral/answers/242954-m-shell-exeted-abnormally-with-code-1-when-using-matlab-emacs-with-screen-after-disconnect-and-recon

我使用 matlab-emacs 通过 emacs 运行 matlab。我在集群计算机的子节点上执行此操作。我在笔记本电脑上使用以下命令集运行 emacs 没有任何问题。

 ssh host1
 ssh node005
 emacs

然后在 emacs 中运行matlab-shellmatlab 会一直运行直到我断开笔记本电脑的连接。但是,我希望能够断开用于运行 matlab 的笔记本电脑的连接并保持作业运行。到目前为止,我的不成功尝试是

 ssh host1
 ssh node005
 screen -S sheep

然后在屏幕上我运行

 emacs --daemon

然后连接到它

   emacsclient -nc

我可以在 emacs 客户端中运行 matlab(再次使用matlab-shell)。但是,当我从屏幕会话断开连接时

 ctrl-a d

然后重新连接

 screen -r sheep
 emacsclient -nc

然后查看已经运行的 matlab shell,我看到我的工作已终止并且消息

M-Shell 异常退出,代码 1

当我分离此屏幕会话时,为什么 matlab 会崩溃?它怎么知道我已经分离了?或者,也许有更好的方法可以在后台运行 matlab(除了 vnc,我现在正在使用它,但有它自己的一组错误)。如果我可以提供任何其他可能有帮助的信息,请告诉我。

请注意,这篇文章如下 emacsclient 连接被拒绝 我所做的事情本质上是为了回应之前的讨论。

编辑:有一个据称为某人工作的设置的描述:http://sourceforge.net/p/matlab-emacs/mailman/message/31704641/

答案1

我发现你的问题是因为我想做同样的事情(恢复屏幕会话而不导致 Matlab 崩溃),但我还没有找到一种方法来做到这一点。相反,我运行一个nohup作业(在 tcsh 中):

nohup nice matlab -nodisplay -nojvm < list_of_matlab_calls.m >! /dev/null &

如果您愿意,可以替换/dev/null为日志文件。我head这样使用的目的是,如果不断写入错误消息,日志文件不会变得很大。

nohup nice matlab -nodisplay -nojvm < list_of_matlab_calls.m | head -c1M >> log_file.txt & 

如果可能的话,我宁愿使用屏幕,所以如果您找到办法,请告诉我们。

nohup编辑:实际上,如果我使用 a (可以注销、登录和恢复屏幕会话)启动 Matlab,我似乎可以在屏幕中使用 Matlab 。我以为我以前尝试过这个并收到错误。

相关内容