2011-12-05 2 views
6

아마존 리눅스 AMI를 사용 중이며 사용자 정의 수정 (axis2server 추가 등)을하고 새로운 AMI로 저장하고 있습니다. 이제는 AMI가 부팅되고, axis2server를 시작합니다 (즉, 인스턴스가 부팅 될 때 ieax2server가 자동으로 시작되어야합니다). 이를 위해 나는 다음과 같은 init 스크립트를 사용하고 다음 명령을 실행 :아마존 리눅스 AMI에 서비스 시작 스크립트 추가하기

chkconfig --add axisservice 

을하지만 내 이미지에서 새 인스턴스를 시작하면 axis2server이 시작되지 않습니다.

시작시 /home/ec2-user/axis2-1.6.1/bin/axis2server.sh 스크립트 만 실행하면됩니다. 내가 여기서 아무것도 놓치고 있니?

#! /bin/sh 
# Basic support for IRIX style chkconfig 
### 
# chkconfig: 235 98 55 
# description: Manages the services you are controlling with the chkconfig command 
### 

case "$1" in 
    start) 
     echo -n "Starting axisservice"   
     touch ~/temp.txt 
     cd /home/ec2-user/axis2-1.6.1/bin 
     ./axis2server.sh & 
     echo "." 
     ;; 
    stop) 
     echo -n "Stopping axisservice" 
     echo "." 
     ;; 

    *) 
     echo "Usage: /sbin/service axisservice {start|stop}" 
     exit 1 
esac 

exit 0 

은 나뿐만 아니라 https://help.ubuntu.com/community/CloudInit을 가서는 스크립트를 실행할 때 사용자가 스크립트를 실행할 수있는 사용자 데이터 스크립트라는 메커니즘을 제공합니다.

$ euca-run-instances --key mykey --user-data-file myscript.sh ami-axxxx 

이 명령 줄 옵션과 내가 원하는 것은 내가 UI를 통해 인스턴스를 시작할 때 같은 것입니다, 스크립트가 started.Therefore해야한다, 나는 위의 옵션은 내 경우에는 사용할 수 없습니다 생각합니다. 내가 틀렸다면 나를 바로 잡아주세요.

덕분에, H.

+0

기본 사항 만 확인하면 시작시 스크립트를 실행할 수있는 올바른 권한이 있습니까? 수동으로 실행 해 보셨습니까? – David

+0

솔루션을 찾았습니까? 또한 인스턴스가 다시 시작될 때 Redis 서버와 node.js를 실행하려고합니다. 아마존 AMI에는 여기에 update-rc.d가 설치되어 있지 않은 것 같습니다. – user482594

답변

3

나는 환경이 (제대로) 설정되어 있지 않습니다 내기. 이것은 쉘 스크립트가 다른 프로그램을 시작하려고 시도했는데 발견되지 않는다고 추측합니다.

echo -n "Starting axisservice"   
touch ~/temp.txt 
cd /home/ec2-user/axis2-1.6.1/bin 
./axis2server.sh & 
echo "." 

편집 :

echo -n "Starting axisservice"   
touch ~/temp.txt 
cd /home/ec2-user/axis2-1.6.1/bin 
./axis2server.sh 
RETVAL=$? 
[ $RETVAL -eq 0 ] && echo Success 
[ $RETVAL -ne 0 ] && echo Failure 
echo "." 

그래서 내가 무슨 짓을 한거야

그래서 처음에, 나는 (현재) 스크립트의 start 부분을 조정할 것?

추가 :

  • & 그래서 스크립트가
  • 는 쉘 스크립트

또한 디버깅의 반환 상태 ($?를) 확인 완료하려면 쉘 스크립트 (axis2server.sh)을 기다립니다 제거 set -x을 스크립트에 적용하여 추적을 사용하고 stderrstdout을 모두 기록하십시오.

질문 :

  1. 는 (서비스 스크립트) stop 아무것도하지 않는 것을 알고 있습니까?
  2. touch ~/temp.txt/root/temp.txt을 만들 예정입니까? (나는 루트 실행이 스크립트를 추측하고있어.) 내 제안을 수행해도 문제가 해결되지 않는 경우
  3. , 당신은 axis2server.sh를 공유하고 stderrstdout을 붙여 넣을 수 있습니다?
관련 문제