내 우분투에는 백그라운드에서 실행되는 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명명된 파이프.