如何暂停Matlab可执行文件并从终端恢复它

时间:2015-11-11 12:28:53

标签: bash matlab

我正在Servoy中编写一个应用程序,它调用Matlab可执行文件来执行一些复杂的数学运算并将结果转回数据库。

问题是Matlab可执行文件非常慢,尤其是在它们启动时。

我想在执行第一个操作时启动可执行文件,然后在后台暂停它并在需要时再次调用它。 我可以从Servoy执行终端调用,但我不知道如何使Matlab暂停和恢复(如果可能的话)。

我期待着任何建议。

2 个答案:

答案 0 :(得分:2)

理论上你可以使用现有的bash解决方案,使用input暂停matlab并输入任何键继续,但我强烈建议你不要这样做。

有两种不错的方法,首先你可以构建一个库而不是一个可执行文件。 Matlab Builder JA允许您将功能导出为jar文件。

此外,您可以创建一个应用程序服务器(可执行文件),它允许通过XMLRPC或类似协议调用方法。在这里,我不确定在部署到可执行文件时可用的功能,可能是您必须选择XMLRPC的替代方法。

这两种可能性都允许您将任务分成单独的步骤,在您想要继续进行的任何操作中逐一调用它们。

答案 1 :(得分:1)

您可以向流程发送信号,以实现此目的:

kill -STOP $PID
  

当SIGSTOP发送到进程时,通常的行为是暂停该进程的当前状态。只有在发送SIGCONT信号时,该过程才会恢复执行。 SIGSTOP和SIGCONT用于Unix shell中的作业控制,以及其他目的。 SIGSTOP无法被捕获或忽略。

要恢复:

kill -CONT $PID
  

当SIGSTOP或SIGTSTP发送到进程时,通常的行为是暂停该进程的当前状态。只有在发送SIGCONT信号时,该过程才会恢复执行。 SIGSTOP和SIGCONT用于Unix shell中的作业控制,以及其他目的。

更多信息here