2011-12-05 23 views
6

Bir Amazon Linux AMI kullanıyorum ve bazı özel modifikasyonlar (bir axis2server vb. Ekledim) kullanıyorum ve bunu yeni bir AMI olarak kaydediyorum. Şimdi yapmak istediğim, AMI önyüklendiğinde, axis2server'ı başlatır (yani, örnek önyüklendiğinde otomatik olarak başlatılması gerekir). Bunun için ben aşağıdaki gibi bir init betiği kullanılır ve aşağıdaki komutu çalıştırılmadan:Amazon linux için bir hizmet başlangıç ​​betiği ekleme AMI

chkconfig --add axisservice 

Ama benim görüntüden yeni bir örneğini başlattığınızda, axis2server başlarken değildir.

Sadece başlangıçta /home/ec2-user/axis2-1.6.1/bin/axis2server.sh komut dosyasını çalıştırmaya ihtiyacım var. Burada bir şey eksik miyim?

#! /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 

Ben de https://help.ubuntu.com/community/CloudInit geçti ve senaryoyu başlatırken bir kullanıcı bir çalıştırabiliriz Kullanıcı Veri Scripts adlı bir mekanizma sağlar.

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

Bu bir komut satırı seçeneğidir ve ne istiyorum ben UI aracılığıyla örneğini başlattığınızda gibi bir şey, senaryo started.Therefore olmalı, yukarıdaki seçenek benim durumumda kullanılamaz düşünüyorum. Yanlışım varsa lütfen düzelt.

sayesinde H.

+0

Sadece çok temelleri kontrol etmek için komut dosyasının başlangıçta çalıştırılması için doğru izinlere sahip mi? Manuel olarak çalıştırmayı denediniz mi? – David

+0

Bir çözüm buldunuz mu? Örneğim yeniden başlatıldığında bir Redis sunucusu ve bir node.js çalıştırmak istiyorum. Amazon AMI'nin burada güncelleme-rc.d yüklü olmadığı görülüyor. – user482594

cevap

3

Ben ortamı (doğru) ayarlanmamış bahis. Bu, kabuk komut dosyanızın başka bir program başlatmaya çalıştığını ve bulunmayacağını tahmin ediyorum.

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

Düzenlendi:

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 "." 

Yani ne yaptım

Yani ilk başta ben (güncel) senaryonuzun start bölümünü ayarlamak istiyorum?

Ekleme:

  • & böylece komut
  • sizin kabuk

Ayrıntılı hata ayıklama dönüş durumunu ($?) işaretli tamamlamak için kabuk (axis2server.sh) bekler kaldırıldı stderr ve stdout öğelerini izlemeyi ve günlüğe kaydetmeyi etkinleştirmek için komut dosyalarınıza set -x.

Sorular:

  1. (hizmet komut) stop şey yapmaz biliyoruz musunuz?
  2. touch ~/temp.txt bu /root/temp.txt oluşturmak gerekiyor? (Ben kök çalışır bu komut tahmin ediyorum.) Benim önerilerin hiçbiri işe yaramazsa
  3. , sen axis2server.sh paylaşmak ve stderr ve stdout yapıştırabilirsiniz?
İlgili konular