Shell 在后台运行matlab
我正在48台虚拟机上运行matlab,并希望将其自动化。我用ssh连接到机器中,然后使用Shell 在后台运行matlab,shell,command-line,matlab,redirect,background,Shell,Command Line,Matlab,Redirect,Background,我正在48台虚拟机上运行matlab,并希望将其自动化。我用ssh连接到机器中,然后使用matlab-r matlab_命令>outfile.txt&让进程在后台运行,并在注销时正常运行。唯一的问题是,当我作业时,我的进程会停止,直到我fg^zbg才开始。是否有matlab标志,以便我可以在后台运行它而不必停止 谢谢, 迈克 为了澄清,这是不起作用的命令的顺序 ssh服务器 matlab-r matlab_命令>outfile.txt& 作业 [1] 停止 为了解决这个问题,我 fg ^z bg
matlab-r matlab_命令>outfile.txt&
让进程在后台运行,并在注销时正常运行。唯一的问题是,当我作业
时,我的进程会停止,直到我fg
^zbg
才开始。是否有matlab标志,以便我可以在后台运行它而不必停止
谢谢,
迈克
为了澄清,这是不起作用的命令的顺序
ssh服务器
matlab-r matlab_命令>outfile.txt&
作业
[1] 停止
为了解决这个问题,我
fg
^z
bg
注销
现在它可以工作了在UNIX上使用命令来防止在您注销时MATLAB停止
nohup matlab -nodisplay -nosplash -r matlab_command > outfile.txt &
别忘了包括exit代码>在matlab_命令脚本的末尾
更新:
尝试以下解决方案:
有一个解释。解决问题的真正干净的方法是使用。
然后,您将不会失去Matlab会话,您可以随时返回Matlab提示符。如果有人用你的Matlab代码出错了,你需要调试一下,这将非常有用
只需启动“屏幕”
”(安装软件包后,包括在所有主要发行版中)。您将有一个典型的提示,但在一个持久的虚拟终端中。像往常一样启动matlab,忽略任何背景。然后按CTRL+A、D(先按CTRL+A,然后按D)。你将离开屏幕。你可以注销。如果要返回屏幕会话,请运行screen-r
。如果需要,您也可以首先直接启动屏幕matlab[…]
。当matlab退出时,您的虚拟会话也会被删除。我正在使用此解决方案,它在以下方面提供了一个虚拟标准:
matlab -r matlab_command > outfile.txt < /dev/null &
matlab-r matlab_命令>outfile.txt
如果您正在使用文件:
nohup matlab-nodesktop-nodisplayresult.txt&
您可能需要在执行此操作后按enter键。我在屏幕上遇到问题:matlab启动了,但不知道通过stdin传递了什么。它只是忽略了它
但是我成功了。这是我使用的命令行
local$ ssh -f me@remote 'tmux new-session -d -s matlab "matlab -nojvm -nodesktop -nodisplay -nosplash </path/to/myscript.m"'
注意,我不得不在这里使用-t
来代替-f
我找到了一些有用的链接
nohup nice matlab-nodisplay-nosplash outfile.txt>2>dev/null&
也许这可以解决您的问题。如果您想要显示,NoMachine()非常好,因为它允许您重新登录到服务器。当我注销时,Matlab不会停止,但是它从来不会真正启动,直到它在前台运行至少一次。如果你这样做会发生什么:matlab-r matlab\u command>outfile.txt
?谢谢你,这正是我想要的。我总是忘了屏幕
有多有用+1我不想做任何输入,如您所说的ctrl a d。我试图制作一个脚本,在144个不同VM上的144个matlabs上运行matlab。我不想手动启动每一个。然后屏幕仍然适合您,因为您可以像nohup案例一样启动它。您还可以使用生成144个本地会话的屏幕[一个屏幕会话可以容纳多个虚拟终端会话]。在每个会话中,您将自动连接到一个VM并运行matlab。这样,您就不必注销,只需通过一屏会话即可轻松监控所有会话。并不是说您需要这样做,这只是您用例的另一个选项。能够监测对我来说至关重要的声音——有这么多的会话,会有一些失败。nohup nice matlab-nodisplay-nosplashoutfile.txt 2>&1&
local$ ssh -t me@remote 'tmux a -t matlab'
nohup nice matlab -nodisplay -nosplash <matlab_command.m > outfile.txt > 2>dev/null &