2016-11-11 7 views
0

私は、rootのみがアクセスできるロックファイルが存在するかどうかをチェックし、次に実行する必要がある実際のテストスクリプトを実行するスクリプトがあります。別のユーザー。スクリプトコマンドがsu -cコマンドとして実行されたときのファイル出力がありません-m user

問題は、テストスクリプトがxmlファイルを生成し、それらのファイルが存在しないことです。 (別名、私はそれらを見つけることができません)

if (mkdir ${lockdir}) 2> /dev/null; then 
    echo $$ > $pidfile 
    trap 'rm -rf "$lockdir"; exit $?' INT TERM EXIT 

    if [ -f "$puppetlock" ] 
    then 
     su -c "/opt/qa-scripts/start-qa-test.sh > /var/log/qaTests/test-$(date +\"m-%d-%T\".log" -m "qaUser" 

lockdirスクリプトの

関連部分は、テストは、テストプロセスが始まったことを意味するために実行されたときに作成されるものです。

puppetlock人形が実行されているかを、人形が作成するロックファイルを探して調べます。

qaUserは、puppetlockが存在するかどうかを確認する権利がありません。

start-qa-test.sh自動テストを実行するためにjavaを呼び出すようになります。私のtest-date.logファイルには、テストが実行されたときに表示されるコンソールが表示されます。

しかし、このテストでは、targetというディレクトリにいくつかのxmlファイルが生成されるはずです。これらのファイルはありません。

ケースでは、start-qa-test.shstart-qa-test.shがターゲットフォルダ内のXML出力を生成し実行する。この

nohup=true 

/usr/bin/java -cp .:/folderStuff/$jarFile:/opt/folderResources org.junit.runnt.JUNITCore org.some.other.stuff.Here 

ような何かを実行しようとしている関連です。しかし、それを実行してsu -cしないでください。

編集

私はこの問題への答えを考え出しました。

私は、出力が/自宅で表示することが許可されている/ qaUser

答えて

0

はラインでstoutstderrの出力をリダイレクトしてみ

su - qaUser -c "/opt/qa-scripts/start-qa-test.sh > /var/log/qaTests/test-$(date +\"m-%d-%T\".log"

に行を変更:

su -c "/opt/qa-scripts/start-qa-test.sh > /var/log/qaTests/test-$(date +\"m-%d-%T\".log" -m "qaUser" 2>&1 
関連する問題