Ubuntu 20.04 LTS에서 매개변수와 DISPLAY 환경 변수를 사용하여 bash 스크립트를 통해 MATLAB을 시작하는 방법은 무엇입니까?

Ubuntu 20.04 LTS에서 매개변수와 DISPLAY 환경 변수를 사용하여 bash 스크립트를 통해 MATLAB을 시작하는 방법은 무엇입니까?

AQuA_WBSv_Instance_Spool.sh,한 컴퓨터에는 exec를 사용자 "matlab_executor"로 사용하여 bash 스크립트를 호출 하고 반환을 기다리지 않는 PHP 스크립트가 있습니다 .

exec('bash -c "exec nohup setsid sudo -u matlab_executor bash /home/matlab_executor/matlab/AQUA_WBSv/AQuA_WBSv_Instance_Spool.sh testU > /dev/null 2>&1 &"');

AQuA_WBSv_Instance_Spool.sh, 에 위치하며 /home/matlab_executor/matlab/AQUA_WBSv/다음과 같습니다.

#DISPLAY=:0 ./matlab -r 'AQuA_WBSv_Main("$1")'| tr -d '\r'
echo "spooler entry with argument $1 executing as user $(whoami)" > /home/matlab_executor/matlab/AQUA_WBSv/output.txt | tr -d '\r'

output.txt다음 내용으로 동일한 디렉터리 에 성공적으로 씁니다 .

spooler entry with argument testU executing as user matlab_executor

또한 로컬로 로그인하거나 matlab_executor, DISPLAY=:0 ./matlab -r 'AQuA_WBSv_Main("testU")'터미널에서 실행하거나, 동일한 디렉터리에서 실행하는 경우 MATLAB은 화면에 시각적으로 표시하면서 -r 인수와 함께 제공되는 함수를 시작하고 성공적으로 실행할 수 있습니다.

내 질문은 다음과 같습니다

bash 스크립트에서 해시를 제거하면 #DISPLAY=:0 ./matlab -r 'AQuA_WBSv_Main("$1")'| tr -d '\r'이제 스크립트는 다음과 같습니다.

DISPLAY=:0 ./matlab -r 'AQuA_WBSv_Main("$1")'| tr -d '\r'
echo "spooler entry with argument $1 executing as user $(whoami)" > /home/matlab_executor/matlab/AQUA_WBSv/output.txt | tr -d '\r'

로컬로 로그인했을 때 MATLAB이 시작되지 않거나 시각적으로 표시되지 않는 이유는 무엇이며, output.txt에 출력이 표시되지 않는 이유는 무엇입니까?

감사해요

관련 정보