作成しているスクリプトで、pidをファイルに保存する際に問題が発生しています。
ターミナルで実行する場合、以下のコマンド:
nohup mvn spring-boot:run > $HOME/logs/app.log 2>&1 & echo $! > $HOME/pids/app.pid
私はwith xargs
以下のようにこのコマンドを実行できません:
echo "dirA" | xargs -L 1 -I {} sh -c "cd '{}'; echo 'Changed directory to' '{}';
nohup mvn spring-boot:run > $HOME/logs/app.log 2>&1 & echo $! > $HOME/pids/app.pid; "
app.logsファイルは正常に生成され、正しい内容になっています。一方、app.pidは空のコンテンツで生成されます。
この問題を理解するのに助けていただければ幸いです。
よろしく、ランド。
sh -c "..."
コマンドを二重引用符で囲むと$!
、インタラクティブシェルで展開できます。
試してみてください
echo "dirA" | xargs -L 1 -I {} sh -c '
cd "$1"; echo "Changed directory to $1";
nohup mvn spring-boot:run > $HOME/logs/app.log 2>&1 & echo $! > $HOME/pids/app.pid;
' sh {}
{}
ほとんどのシェルで引用する必要はありません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加