Upstart yeni betiğimi görmüyor


27

/etc/init/Adı verilen minecraft.confbetiği içeren yeni bir komut dosyası ekledim :

start on startup
stop on shutdown
respawn
respawn limit 20 5

script
  export HOME="/root"
  exec /root/minecraft/start.sh 2>&1 >> /var/log/minecraft.log
end script

post-start script
   echo "minecraft started"

Denediğimde start minecrafthatayı alıyorum:start: Unknown job: minecraft

Koşmayı denedim initctl listve minecraft işim listelenmedi. Koşmayı denedim initctl reload-configurationve hiç farketmedi.

initctl listİşe göre listelenen diğer işler , başlat, durdur ve yeniden başlat

Neden yeni bültenimi yeni çıkmaya başlamıyorsun?



Bu aptalca bir soru olabilir ama ... senaryonuzda kalmayacak mıydı /etc/init.d/?
Wolfer

@snow teşekkürler, ama ben zaten okudum ve hala sorunum var.
Jasarien

@ Starttart başlangıç ​​kılavuzuna göre kurt, "Mutlu olduktan sonra dosyaları yerleştirin /etc/initve şimdi yeniden başlatıp yeniden başlatmaya hazırsınız."
Jasarien

Sorunu yeniden oluşturmaya çalıştım ama başaramadım. Kodunuzu /etc/init/minecraft.conf dosyasına yapıştırarak sudo start minecraftsorunsuz bir şekilde yayınladım . Günlük dosyasının içeriği ~$ sudo cat /var/log/upstart/minecraft.log minecraft started /proc/self/fd/9: 3: exec: /root/minecraft/start.sh: not found minecraft started: Kullanmakta olduğunuz Ubuntu sürümü ve syslog'dan faydalı bilgiler hakkında daha fazla bilgi verebilir misiniz?
Goran Miskovic

Yanıtlar:


12

/var/log/syslogKullanarak yapılandırmayı yeniden yüklerken , başlangıç ​​kayıtlarını (içinde ) kontrol edin initctl reload-configuration. Bir sözdizimi hatası varsa, orada görünecektir. Genelde bu nedenle yeni başlangıç ​​yapılandırmanızı kullanamazsınız.


11

Komut dizinizin sözdizimini kontrol etmenin kolay bir yolu aşağıdaki komuttur:

init-checkconf -d /etc/init/service_name.conf

Sunucu en son başlatıldığında dosya mevcut değilse, geçerli bir Upstart dosyasıyla bile, Upstart'ın dosyayı görmesi için sunucuyu yeniden başlatmam gerektiğini öğrendim.


9

Kendimi aptal hissediyorum ... Ama işte burada:

"Senaryoyu Başlatan" Stanza'yı "Başlatma Senaryosu" nun sonundan özledim.

post-start script
   echo "minecraft started"

olmalıydı

post-start script
   echo "minecraft started"
end script

Neden schkovich için çalıştığını bilmiyorum end scriptama ...


2
Çünkü son senaryo stanza'yı ekledim. Dahili (zihin) otomatik kod tamamlama. :(
Goran Miskovic

Aynı problemi vurdum ama çıldırtıcı bir şekilde, / var / log içinde hiçbir şey görünmüyor ve initctl yeniden yükleme yapılandırması - verbose sessiz.
Neil McGill

4

Benim durumumda boş bir authoralandı, şöyle:

author ""

Sadece tırnak içine bir şey ekledikten sonra çalıştı.

# initctl reload-configuration

Ayrıca /etc/init/servicename.conf:2: Expected token stdout yerine syslog atıyordu . Ölmekte olan bir paket için hata bildirimi yapmak çok meşgul.


3

Belki de bu konuda özellikle uygulanabilir değil, ancak bahsetmeye değer: Çalışmakta olan bir hizmet için Upstart config dosyasını düzenlerseniz, çalıştırma restartyapılandırmayı yeniden yüklemez. Koşmanız stopve startyeni değişikliklerin yürürlüğe girmesi gerekir.

http://upstart.ubuntu.com/cookbook/#restart

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.