私のUbuntuにはバックグラウンドで動作するJavaアプリケーションがあります。 bashスクリプトを使って実行しましたが、次のようになります。
nohup java -jar app.jar &
exit 0
問題は、入力文字列を前景にインポートせずに、他の端末/セッションから自分のアプリケーションに書き込むことができることです。それはまるで
echo "mytext" > /appdir/in
スクリプトをどのように変更する必要がありますか?
答え1
メインディレクトリ
#!/bin/bash
set -e
if [ ! -p in ]; then
mkfifo in
fi
tail -f in | java -jar app.jar
次の構文を使用してアプリケーションにコマンドを送信します。
echo "command" > /home/user/in
答え2
試してみてください:
mkfifo /appdir/in
nohup java -jar app.jar < /appdir/in &
exit 0
テストを受ける:
$ ./startapp.sh
$ printf "%s\n" "mytext" >> /appdir/in
$ cat nohup.out
mytext
$
ライフサイクルを管理するには、追加の制御機能を追加する必要があります。/アプリケーションディレクトリ/in名前付きパイプ。