私はjava program
標準入力から読んでいる
BufferedInputStream bis = new BufferedInputStream(System.in);
byte[] b = new byte[1];
int cmd = bis.read(b);
System.out.println("Read command: " + new String(b));
そして、shell script
このプログラムを開始/停止するには
'start')
if [ -p myfifo ]; then
rm myfifo
rm myfifo-cat-pid
fi
mkfifo myfifo
cat > myfifo &
echo $! > myfifo-cat-pid
java -jar lib/myJar.jar >/dev/null 2>&1 0<myfifo &
echo `date +%D-%T` $! >> process.pid
echo "Started process: "$!
;;
'stop')
echo 0 > myfifo
echo "Stopped process: "
rm myfifo
;;
start でコマンドを 1 つずつ実行すると、プログラムは fifo でエコーするまで待機します。しかし、.sh ファイルから実行すると、すぐに stdin から読み込まれます。コマンドプロンプトでコマンドを直接実行する場合と、.shファイルを作成して実行する場合の違いがわかりません