开发者社区> 问答> 正文

使用自己的Shell脚本启动器在Linux中运行多个后台进程

我想在远程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" &

结果:命令提示符已被占用,据我推测,这阻止了调用下一个命令。

展开
收起
祖安文状元 2020-01-08 15:47:34 841 0
1 条回答
写回答
取消 提交回答
  • 您可以使用屏幕包装。在大多数Linux发行版中,已经安装了此软件包,但如果没有,则可以通过存储库轻松安装它。

    在Ubuntu和Debian上

    apt install screen
    
    

    在CentOS和Fedora上

    yum install screen
    
    

    要启动屏幕会话,只需在控制台中键入screen:

    screen
    
    

    您可以随时输入以下内容从屏幕会话中分离:

    Ctrl+a d
    
    

    从屏幕会话中分离后,在屏幕会话中运行的程序将继续运行。要查找会话ID,请使用以下命令列出当前正在运行的屏幕会话:

    2020-01-08 15:47:50
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 技术揭秘 立即下载
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载