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に出力が表示されないのはなぜですか?
ありがとう