在nohup bash脚本中运行几个matlab实例
我试着做如下的事情。 现在,我通过ssh连接到远程机器,并使用nohup命令运行我的分析,如下所示在nohup bash脚本中运行几个matlab实例,bash,matlab,terminal,nohup,Bash,Matlab,Terminal,Nohup,我试着做如下的事情。 现在,我通过ssh连接到远程机器,并使用nohup命令运行我的分析,如下所示 nohup matlab -nodesktop -nodisplay < mycode.m > output.txt 2>&1 & 但是,不仅代码只在一个CPU上工作,而且它在一个无限循环中运行,永远不会完成任务 我能解决这个问题吗? 在启动script.sh后关闭终端非常重要 编辑: 多亏了你,我终于做到了,并且让下面的事情顺利进行 ssh user@ipad
nohup matlab -nodesktop -nodisplay < mycode.m > output.txt 2>&1 &
但是,不仅代码只在一个CPU上工作,而且它在一个无限循环中运行,永远不会完成任务
我能解决这个问题吗?
在启动script.sh后关闭终端非常重要
编辑:
多亏了你,我终于做到了,并且让下面的事情顺利进行
ssh user@ipaddress
screen
cd folder1/
nohup matlab -nodesktop -nodisplay < mycode.m > output.txt 2>&1 &
exit
screen
cd folder2/
nohup matlab -nodesktop -nodisplay < mycode.m > output.txt 2>&1 &
exit
但是只有第一次运行matlab,怎么可能呢?编译所有建议和想法,您可以尝试以下方法:
#!/bin/bash
ssh user@ipaddress "
cd folder1/
nohup matlab -nodesktop -nodisplay < mycode.m > output.txt 2>&1 &
cd folder2/
nohup matlab -nodesktop -nodisplay < mycode.m > output.txt 2>&1 &
"
#/bin/bash
sshuser@ipaddress "
cd文件夹1/
nohup matlab-nodesktop-nodisplayoutput.txt 2>&1&
cd文件夹2/
nohup matlab-nodesktop-nodisplayoutput.txt 2>&1&
"
或
#/bin/bash
sshuser@ipaddress "
cd文件夹1/
nohup matlab-nodesktop-nodisplay-r'mycode;quit;'output.txt 2>&1&
cd文件夹2/
nohup matlab-nodesktop-nodisplay-r'mycode;quit;'output.txt 2>&1&
"
或
#/bin/bash
sshuser@ipaddress "
cd文件夹1/
screen-dm matlab-nodesktop-nodisplayoutput.txt 2>&1
cd文件夹2/
screen-dm matlab-nodesktop-nodisplayoutput.txt 2>&1
"
或
#/bin/bash
sshuser@ipaddress "
cd文件夹1/
screen-dm matlab-nodesktop-nodisplay-r'mycode;quit;'output.txt 2>&1
cd文件夹2/
screen-dm matlab-nodesktop-nodisplay-r'mycode;quit;'output.txt 2>&1
"
您也可以尝试expect
来控制matlab,而不是向其发送mycode.m
或使用-r
也可以尝试在
屏幕上执行nohup
。我认为您不再需要向它添加&
,因为屏幕
在默认情况下已经作为守护进程运行。谢谢大家的帮助。
我想我已经找到了我想要的
我ssh
进入我的机器
使用命令screen-dmS analysis
运行脚本(见下文)nohup./script.sh&
关闭屏幕退出
使用top
(与往常一样:)检查运行情况
这是我的script.sh
#!/bin/bash
matlab -nodesktop -nodisplay -r "cd folder1/; run('mycode.m'); quit" < /dev/null > output.txt
matlab -nodesktop -nodisplay -r "cd folder2/; run('mycode.m'); quit" < /dev/null > output.txt
#/bin/bash
matlab-nodesktop-nodisplay-r“cd folder1/;运行('mycode.m');退出”output.txt
matlab-nodesktop-nodisplay-r“cd folder2/;运行('mycode.m');退出”output.txt
分析一个接一个地进行!太好了 如何使用?@RodyOldenhuis抱歉,你能说得更具体一点吗?我从未使用过screen命令:(这就是我提供文档链接的原因:)在这里,你可以看到“screen允许你有多个屏幕执行不同的任务,而不必多次连接(SSH)到同一台计算机。”以及“[…]分离[…]将保持屏幕处于活动状态,即使在注销时,并且可以在下次连接时重新连接。“。因此,它允许您在同一SSH连接上打开多个终端会话,并且在每个终端会话中运行的任务不会在您断开SSH连接时终止。我想这就是你想要做的,对吗?@Nicholas我实际上没有看到你的第二个剧本中有一部分可以让它无限延伸,还有nohup。你还做了其他的东西吗?@konsolebox不,我没有,代码也不会停止(?)谢谢你的帖子,尽管我觉得我找到了一个很好的解决方案,我要发布。我认为S分析是可选的。您可以只使用screen-dm
,运行screen-dm
而不使用参数或命令也不会创建交互式屏幕进程。它只是背景上的一个单独的屏幕。刚刚起作用的是nohup./script.sh&
。我认为即使您不运行screen-dmS分析
,它仍然可以工作。
#!/bin/bash
ssh user@ipaddress "
cd folder1/
nohup matlab -nodesktop -nodisplay < mycode.m > output.txt 2>&1 &
cd folder2/
nohup matlab -nodesktop -nodisplay < mycode.m > output.txt 2>&1 &
"
#!/bin/bash
ssh user@ipaddress "
cd folder1/
nohup matlab -nodesktop -nodisplay -r 'mycode;quit;' < /dev/null > output.txt 2>&1 &
cd folder2/
nohup matlab -nodesktop -nodisplay -r 'mycode;quit;' < /dev/null > output.txt 2>&1 &
"
#!/bin/bash
ssh user@ipaddress "
cd folder1/
screen -dm matlab -nodesktop -nodisplay < mycode.m > output.txt 2>&1
cd folder2/
screen -dm matlab -nodesktop -nodisplay < mycode.m > output.txt 2>&1
"
#!/bin/bash
ssh user@ipaddress "
cd folder1/
screen -dm matlab -nodesktop -nodisplay -r 'mycode;quit;' < /dev/null > output.txt 2>&1
cd folder2/
screen -dm matlab -nodesktop -nodisplay -r 'mycode;quit;' < /dev/null > output.txt 2>&1
"
#!/bin/bash
matlab -nodesktop -nodisplay -r "cd folder1/; run('mycode.m'); quit" < /dev/null > output.txt
matlab -nodesktop -nodisplay -r "cd folder2/; run('mycode.m'); quit" < /dev/null > output.txt