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에 출력이 표시되지 않는 이유는 무엇입니까?
감사해요