2012-06-25 2 views
0

현재 Java 프로세스를 시작하고 $!을 사용하여 해당 PID를 가져 와서 파일에 쓰려고합니다. 문제는 Java 프로세스를 시작할 때 자체 "콘솔"에 들어가는 것입니다. (나는 이것이 무엇이라고 불리는 지 잘 모르겠다).

프로세스를 중지하고 PID가 쓸모없는 '콘솔'밖으로 나가기 전까지는 $!을 파일에 쓸 수 없습니다.

Java 프로세스를 시작하고 종료하지 않고 PID를 가져 오는 방법은 무엇입니까? echo $! > pidfile.pid을 사용하여 Java 프로세스의 PID를 파일에 씁니다.

짧은 쉘 스크립트에서
#!/bin/bash 
pidfile=/some/path/pidfile.pid 
echo $$ > $pidfile 
exec java [email protected] 

는 PID를 써 한 다음 스크립트를 쉘에 전달할 모든 매개 변수와 자바 프로세스 자체를 대체

+0

Java 프로세스를 시작하는 줄 끝에'&'가 있습니까? 우리가 할 수있는 모든 코드를 보여주지 않으면 짐작할 수 있습니다. –

+0

백그라운드에서 java를 실행하여 Java가 시작되는 동안 호출 스크립트가 계속 실행됩니까? – John3136

+0

좋아해요 (java -jar jarname &); pid = $! – pizza

답변

1

(예) 작은 자바 래퍼 스타터 java.sh 쓰기 . 그런 다음 을 java.sh으로 대체하고 내 보낸 변수를 통해 pidfile을 전달할 수 있습니다.

관련 문제