我想在远程Linux服务器中运行多个应用程序实例,该服务器实例可以并行运行,也可以在注销后运行。我想使用一个shell脚本启动它们。
假设我想以并行方式运行以下命令:
matlab -nodisplay -r "matlab_test" matlab -nodisplay -r "matlab_test2" 假设这些进程分别尽可能频繁地更新名为“ test_file.mat”和“ test_file2.mat”的文件。
我尝试了几种用谷歌搜索出的方法,但这是最具代表性的方法。
我尝试了以下组合,以便在将来的shell脚本中使用它:
matlab -nodisplay -r "matlab_test" &
bg 1 结果:根本没有生成输出文件“ test_file.mat”,因此我认为该进程已置于后台,但没有在后台运行。
备注:当我执行此过程时,将生成文件。
我也尝试过:
nohup matlab -nodisplay -r "matlab_test" &
结果:命令提示符已被占用,据我推测,这阻止了调用下一个命令。
您可以使用屏幕包装。在大多数Linux发行版中,已经安装了此软件包,但如果没有,则可以通过存储库轻松安装它。
在Ubuntu和Debian上
apt install screen
在CentOS和Fedora上
yum install screen
要启动屏幕会话,只需在控制台中键入screen:
screen
您可以随时输入以下内容从屏幕会话中分离:
Ctrl+a d
从屏幕会话中分离后,在屏幕会话中运行的程序将继续运行。要查找会话ID,请使用以下命令列出当前正在运行的屏幕会话:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。