gpt4 book ai didi

linux - 从 shell 脚本调用具有超时功能的 matlab

转载 作者:太空宇宙 更新时间:2023-11-04 11:44:48 25 4
gpt4 key购买 nike

我有一系列 matlab 代码,其中一个脚本在某些情况下会无限期挂起。目前,我有一个 shell 脚本来调用管道的每一部分。但是,我想“超时”可能无限期挂起的一段 matlab 代码。

如果直接在终端窗口中输入以下代码,则它可以完美运行。但是,当此代码是 shell 脚本中的一行时,它将不会执行 matlab 脚本。

timeout --kill-after=25 25 matlab -nodisplay -nosplash -nodesktop -r "run('testing.m'); exit;"

从 shell 脚本执行时,在达到超时和终止选项之前不会发生任何事情。还有,

matlab -nodisplay -nosplash -nodesktop -r "run('testing.m'); exit;"

在 shell 脚本中运行没有问题。

最佳答案

根据上面的评论,添加 --foreground 解决问题。

最有可能的是,'testing.m' 需要访问 TTY/TTY 信号。默认情况下,超时会将命令作为子进程运行,w

timeout --foreground --kill-after=10 25 matlab -nodisplay -nosplash -nodesktop -r "run('testing.m'); exit;"

来自超时手册页:
- 前景
当不直接从 shell 提示运行超时时,允许 COMMAND 从 TTY 读取并获取 TTY 信号;在这种模式下,COMMAND 的 child 不会超时

关于linux - 从 shell 脚本调用具有超时功能的 matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58206082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com