Как предотвратить процесс неработающего или зомби при развертывании кода Matlab, вызывающего Python на rapsberry pi? - PullRequest
0 голосов
/ 27 июня 2019

Я развертываю Matlab Code на Raspberry Pi, используя Matlab Coder. Я использую некоторый код Python и выполняю его с помощью системной команды в Matlab. Это прекрасно работает, и я могу восстановить данные, возвращаемые скриптом Python. Приведенный ниже код Matlab развертывается без проблем.

function processTest1() %#codegen

fidLog = fopen( 'processTest1.log', 'w' );

% create log file
if coder.target( 'MATLAB' )
    fprintf( fidLog, '%s \n', 'running on pc' );
else
     fprintf( fidLog, '%s \n', 'running on pi' );
end

% Create a Raspberry Pi object
r= raspi();

for loop = 1 : 1000
    fprintf( fidLog, 'iteration = %i \n', int16( loop ) );
    fprintf( fidLog, '%s \n', 'executing python script...' );
    % execute python script
    result = system( r, 'python testPythonScript.py' );
    fprintf( fidLog, '%s \n', result );
    system( r, 'sleep 0.1' );
end
fclose( fidLog );

end

Код Python (testPythonScript.py) в этом случае просто возвращает случайное целое число

import random
print random.randint(1,10)

Однако каждый раз, когда выполняется системная команда, процесс defunc остается позади. Со временем эти процессы накапливаются и после примерно 500 вызовов скрипт python больше не выполняется. Есть ли способ избежать накопления этих зомби-процессов?

...