(我是linux的新用户)。我正在使用 nohup 以这种形式并行运行多个 matlab 脚本:
(cd Documents/dir_001; nohup matlab -nodisplay -nosplash -nodesktop -r "run('/home/user/Documents/dir_001/myScript.m')") &
(cd Documents/dir_002; nohup matlab -nodisplay -nosplash -nodesktop -r "run('/home/user/Documents/dir_002/myScript.m')") &
(cd Documents/dir_003; nohup matlab -nodisplay -nosplash -nodesktop -r "run('/home/user/Documents/dir_003/myScript.m')") &
我注意到(通过使用 top -u ),当我的脚本完成其例程时(我可以通过查看目录来判断它已完成,当目录为空时,则脚本已完成其作业)与脚本关联的内存开始增加逐步。我必须杀死 PID 以防止它继续增长。
我的问题:
- 脚本完成例程后,如果内存使用量不为零,为什么不会立即达到最小值?
- 为什么内存会增加?运行脚本时,它会消耗 1% 的内存,完成后它会不断增长到 1.3%、1.5%、1.9%、2% 等值。
我该如何修复它?我想在脚本完成后自动杀死PID
答案1
您需要exit
在要执行的Matlab命令后面添加一条命令:
(cd Documents/dir_001; nohup matlab -nodisplay -nosplash -nodesktop -r "run('/home/user/Documents/dir_001/myScript.m'); exit;") &
看如何从命令行调用 MATLAB 脚本?了解详情。