保持matlab进程在Linux服务器后台运行

本文详述如何在Linux服务器后台运行Matlab,包括命令行启动和利用nohup、setsid、disown、screen等方法实现进程后台运行,确保即使SSH连接断开,程序也能继续执行。

本文主要分为两部分,分别为matlab命令行启动和Linux服务器后台运行,后者可用于各种后台运行程序,如matlab、python等。

由于疫情而远程办公的缘故,笔者最近经常用到Linux服务器。利用SSH协议可很方便地通过自己的笔记本远程访问服务器,从而进行操作。有很多商业软件可满足从个人电脑的windows平台访问远程Linux服务器,笔者正在使用的是MobaXterm。这款软件集成有SSH 会话功能和X11 server,可以很方便地加载图形界面,如下图所示。

笔者使用服务器时,首先在本地电脑打开MobaXterm的一个SSH会话,连接到服务器后,就是一个终端界面。笔者常用服务器上安装的matlab进行数值计算,在终端输入matlab后,即出现matlab的窗口界面,与windows的完全一样,可正常使用。

然而这样使用matlab需要始终保持SSH会话,也即本地电脑需要一直连接服务器,不能关机也不能断网。如果因某种原因SSH连接失败,则服务器正在运行的程序也会中断,辛苦跑了许久的仿真就白费了;此外,程序运行过程中会一直占据终端,从而导致无法做别的事。

解决这一问题,可以从两个方面考虑:第一,尝试使用命令行方式运行matlab,而不打开图形化界面;第二,尝试让matlab的运行脱离SSH连接产生的终端而独立出来,当关闭与服务器的SSH连接后,服务器端仍然保持matlab的运行。

  • 1. matlab命令行方式运行

  • 1.1. 命令行运行方法

文献1中详细介绍了命令行运行matlab的方法,这里引用其关键内容,并添加笔者的经验。在命令行下执行如下语句可获得matlab的帮助文档

$ matlab -help

需要注意的命令有

                             [-display Xdisplay | -nodisplay]

                             [--noFigureWindows]

                             [-nosplash]

                             [-desktop | -nodesktop | -nojvm]

                             [-batch MATLAB_command | -r MATLAB_command]

                             [-logfile log]

-display Xdisplay  -
### 如何以无界面模式或后台进程运行MATLAB脚本 为了实现MATLAB脚本在后台运行并采用无界面模式,可以利用特定的启动参数以及操作系统级别的命令来完成这一目标。以下是具体方法: #### 方法一:通过 `nohup` 命令运行MATLAB脚本 可以通过组合使用 `nohup` 和 MATLAB 的 `-nodisplay`, `-nodesktop`, `-nojvm`, `-nosplash` 参数,在不显示任何GUI的情况下执行脚本并将输出重定向到日志文件中。 示例命令如下: ```bash nohup /opt/matlab/R2011a/bin/matlab -nodisplay -nodesktop -nojvm -nosplash -r "run('your_script.m');" > output.log 2>&1 & ``` 上述命令中的各个部分解释如下: - `/opt/matlab/R2011a/bin/matlab`: 表示MATLAB可执行程序路径[^3]。 - `-nodisplay`: 不加载X窗口系统支持。 - `-nodesktop`: 关闭桌面环境。 - `-nojvm`: 禁用Java虚拟机。 - `-nosplash`: 防止启动画面出现。 - `-r "run('your_script.m');"`: 运行指定的MATLAB脚本。 - `> output.log 2>&1 &`: 将标准输出和错误输出保存至 `output.log` 文件,并使该过程以后台方式运行。 #### 方法二:将MATLAB放入后台并通过终端控制 如果已经打开了一个交互式的MATLAB会话,则可通过以下步骤将其移入后台继续工作而不中断当前任务流。 操作流程描述为按下快捷键 Ctrl-Z 暂停前台活动的应用程序实例;随后输入 bg 让其转入后台处理状态;最后再发出 exit 来关闭shell连接却保留正在运作的服务在线运转着[^2]。 需要注意的是这种方式仅适用于某些场景下简单测试用途而非生产环境中推荐做法因为存在潜在风险比如意外终止等问题可能影响稳定性所以更建议优先考虑第一种方案即借助 nohub 实现完全脱离登录session后的持续作业能力。 #### 方法三:挂载ISO镜像安装服务端MATLAB 对于需要频繁部署不同MATLAB的情况来说还可以提前准备好对应系统的镜像文件上传至服务器上然后按照下面给出的例子来进行设置从而方便后续调用各种功能模块而无需每次都重新下载完整的软件包内容减少网络资源消耗提高效率同时也能更好地管理多套独立配置之间的差异性避免冲突发生提升整体运维水平达到事半功倍的效果[^4]: 首先确保获取到了适合Linux平台使用的官方发行本链接地址之后运用wget工具自动抓取下来存放到合适位置等待进一步加工处理完毕后再依照常规指引完成全部必要环节直至最终成功激活许可授权为止即可正常使用各项高级特性啦! ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值