2012-03-26 2 views
8

start-stop-daemon을 사용하여 init 스크립트에서 Java 프로그램을 제대로 시작하는 데 시간이 많이 걸립니다. 나는 init 스크립트를 작성했으나 실행되는 것처럼 보이지만 실행중인 프로그램을 나타내는 프로세스는 결코 없다.start-stop-daemon 및 java 프로그램

/etc/init.d#을/etc/초기화 : 나는 다음과 같은 얻을 /etc/init.d를 통해 그것을 실행하려고하면 다음

내 init 스크립트

#! /bin/sh 
# 
# 

DAEMON="/usr/bin/java" 
DAEMON_ARGS="-server -cp <bunch of RMI arguments and classpath stuff> -jar <absolute path>/myprog.jar" 

PIDFILE="/var/run/myprog.pid" 

case "$1" in 
start) 
    echo -n "Starting myprog" 
    start-stop-daemon --start --pidfile "$PIDFILE" --chuid "myuser" --verbose --background --make-pidfile --startas "$DAEMON" -- $DAEMON_ARGS 
    echo "." 
;; 

의 조각이다 .D /로 myscripf 시작

시작 myprogStarting는/usr/빈/자바 ...

Detatching는 /usr/bin/java...done를 시작합니다.

.

그 후, --exec의 myprog.jar

내가 해봤 다양한 조합을 실행에는 자바 인터프리터 실행중인 프로세스가없는, 더 많거나 적은 동일한 결과를 --start. 무슨 일이 일어나고 있는지 좀 더 알 수 있다면, 나는 이것을 알아낼 수있을 것이라고 확신하지만 어떻게해야할지 모르겠다.

제안 사항?

내가 지금 어떤 조언 붙어

을 (자바 서비스 래퍼가 정말 실행 가능한 옵션이되지 않도록 내가 예. 내가 ARM에 대해 사용 가능한 생각하지 않는다, 임베디드 ARM 플랫폼에서 옹스트롬을 실행 해요) 정말 감사하겠습니다.

감사합니다.

+0

필자의 프로그램은 현재 데몬 인터페이스를 구현하지 않는다는 것을 지적해야합니다. 필수 사항입니까? – ColonelPackage

답변

-4

당신은 그것을 실행하고 모니터 할 수있는 방법을 찾고 있습니까?

ms 배치 도스를 아직 프로그래밍하지 않으셨습니까?

@echo off 
cd DirectoryOfFiles 
echo "Starting up..." 
java -Xmx512m mainFile 
pause 

mainFile = main.java 예

위한

? DirectoryOfFiles = 당신이 파일을 실행하면 같은 디렉토리 인 경우 만이 줄

를 제거, 모든 클래스 파일이있는 디렉토리는 희망이 먼저 --startas을 제거하려고 시도하는

+0

나는 그 일을 시작하려고 노력하고있다. 나는 그것이 실제로 실행 중인지 확인할 수 있으면 모니터링하는 것이 덜 흥미 롭습니다.내 플랫폼은 임베디드 리눅스 (Angstrom)이므로 ms 배치 DOS 프로그래밍은 옵션이 아닙니다. 생각해 줘서 고마워. – ColonelPackage

14

두 가지를 요구하는지이다 과 같이 대신 --exec를 사용 : 당신이하지 작업 디렉토리가 /되는 끝 할 경우 --background을 사용하고 있기 때문에

start-stop-daemon --start --pidfile "$PIDFILE" --chuid "myuser" --verbose --background --make-pidfile --exec "$DAEMON" -- $DAEMON_ARGS 

둘째는 --chdir 옵션을 지정하십시오.

나는 궁극적으로 --chdir에 의해 해결 된 내 문제를 해결하기 위해 귀하의 질문에 걸림돌을 끝내고, 나는 당신뿐만 아니라 해결할 것입니다 믿습니다.

+0

--chdir 내 문제를 해결하는 데 도움이 감사합니다, – Lukino

+0

이 이야기에서 가장 실망스러운 점은'start-stop-daemon'은 달리 말하지 않으면 모든 프로그램 출력을 삼킨다는 것입니다. –

+0

@Ivan : 해결 방법보기 : http : // stackoverflow .com/a/21029952/400925 – Francois

관련 문제