私のUbuntuでは、バックグラウンドでJavaアプリケーションを実行します。bashスクリプトを使用して実行すると、次のようになります。
Nohup Java -jar app.jar &
exit 0
異なる端末/セッションから、フォアグラウンドにすることなく、アプリケーションに入力文字列を書き込めるようにしたいという問題。何かのようなもの
echo "mytext" > /appdir/in
スクリプトをどのように変更すればよいですか?
main.sh
#!/bin/bash
set -e
if [ ! -p in ]; then
mkfifo in
fi
tail -f in | Java -jar app.jar
次の構文でコマンドをアプリケーションに送信します
echo "command" > /home/user/in
これを試してみてください:
mkfifo /appdir/in
Nohup Java -jar app.jar < /appdir/in &
exit 0
テスト:
$ ./startapp.sh
$ printf "%s\n" "mytext" >> /appdir/in
$ cat Nohup.out
mytext
$
/ appdir/in名前付きパイプのライフサイクルを管理するために追加する追加のコントロールがあります。