Uptart komutunu bilinmeyen örneği kullanarak kullanma


8

Ben sadece upstart alıyorum bu yüzden ben sadece vm-service.confkoymak günlük dosyası yazdırmak için çok temel bir komut dosyası yazdı: ben koymak /etc/init:

description "Virtual Images"
author      "Me"

start on runlevel [2345]
stop on runlevel [016]
respawn   


script
echo "DEBUG: `set`" >> /tmp/vm-service.log

end script


pre-stop script
    echo "DEBUG: `set`" >> /tmp/vm-service.log
end script

Ben çalıştırırsanız sudo start vm-service, çıktılar:

vm-service start/running, process 29034

Ama sudo stop vm-servicekoştuğumda çıktısı:

stop: Unknown instance

Çalışmayı denedim sudo initctl reload-configuration, ama yine de hatayı durduruyorum.

Yemek kitabına baktım ama muhtemelen bariz bir şeyi kaçırıyorum.

Yanıtlar:


7

Upstart, ana işlem (kod veya exec stanzları belirtilirse çalıştırılan) çıkarsa işi durdurulmuş olarak değerlendirir. Upstart daha sonra başlatma sonrası işlemini çalıştırır.

Yani olan ilk komut dosyası çalışıyor ve çıkıyor, Upstart işin durduğunu düşünüyor, sonra ikinci komut dosyası çalışıyor ve çıkıyor. Durdurma komutunu zaten durdurulmuş bir işte çalıştırırsanız, gördüğünüz mesajı yazdırır.

Bunu yapmak için bir başlangıç ​​öncesi stanza kullanın:

pre-start exec foo --bar

post-start exec baz --foo

bunu yaparsanız, Upstart işi başlangıç ​​öncesi stanza bittikten sonra başlatılmış olarak görür ve durdurulamaz.

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.