Ubuntu Upstart'ta bir servis nasıl oluşturulur


21

java -jar abc.jarTerminalde yazarak çalıştırabileceğim bir Java çalıştırılabilir programım var . Hizmet olarak nasıl çalıştırabilirim? Yazarak gibi bir hizmet olarak çalıştırmak istiyorum service abc start.


Daha eksiksiz bir cevap burada: unix.stackexchange.com/questions/1924/… Temel olarak, Ubuntu'da /etc/init.d için hizmetinizi başlatabilecek / durdurabilecek / yeniden başlatabilecek bir komut dosyası oluşturabilirsiniz.
Bay Ed,

Yanıtlar:


41

14.04'te olduğundan emin ol. Ubuntu 16.04 (ve üstü), start-up değil, systemd kullanır.

Upstart betiği, içine yerleştirilen /etc/init/ve biten bir betik dosyasıdır .conf.

2 bölüm gerektirir: biri ne zaman başlanacağını belirtmek için diğeri ise yürütmek için komutla.

Örnekle başlamak için en kolay komut dosyası:

# myprogram.conf
start on filesystem
exec /usr/bin/java -jar /path_to/program

Altında kök olarak düzenlendi /etc/init/myprogram.conf.

Komut dosyanız birden fazla komut satırı gerektiriyorsa script, execsatır yerine bölümü kullanın :

# myprogram.conf
start on filesystem
script
    /usr/bin/java -jar /path_to/program
    echo "Another command"
end script

Hizmetinizde bash tamamlamayı etkinleştirmek için, /etc/init.dklasöre bir link ekleyin :

sudo ln -s /etc/init/myprogram.conf /etc/init.d/myprogram

Sonra başlatmayı ve durdurmayı deneyin:

sudo service myprogram start

Başlangıçtaki yemek kitabına göre, yürütülecek pre-start/ post-startve pre-stop/ post-stopkomutlarını oluşturabilirsiniz .

Ayrıca, bir işlemin çalışıp çalışmadığını kontrol etmek istediğinizi okudum. Bu soruyu kontrol edin ve belki pre-startbölümü kullanın .


1
Belki de çalıştırılabilir hale getirmelisin sudo chmod +x /etc/init.d/myprogram. DİKKAT: Yanıtladığınız yöntem Ubuntu 16.04'te çalışmıyor!
juliocesar

2
@juliocesar 16.04, Upstart değil sistemd kullanır.
Rael Gugelmin Cunha

start ongerekli bir stanza değil. Okumak gibi burada : Böyle bir işi sadece bir yönetici tarafından kontrol edilebilir .
SuB

@SuB yeap, ancak o zaman iş otomatik olarak başlamayacak ve soru yazarının bir hizmet gibi hareket eden bir şey istediği, yani otomatik olarak başlamak istediği açıktı.
Rael Gugelmin Cunha,

Evet. Biliyorum. sadece cevabınızı tamamlamak için bir yorum ekledi.
SuB

0

Bir başlangıç ​​oluşturmalısınız. http://upstart.ubuntu.com/getting-started.html

Başlangıcı (IMHO) iyi ol 'SysV init betikleri ile karşılaştırıldığında bir felakettir. Upstart, eklenen işe biraz daha fazla ilave olarak, FAR ile daha fazla çaba gösteriyor. Bununla birlikte, bariz şekilde belirttiğim görev için beni işe alacak bir kaç başlangıç ​​savunucusu olacağından şüpheleniyorum ;-)


1
Bu sadece /etc/init/yourservice.conf dosyasındaki ve ne zaman başlayacağınızı gösteren bir satır ve exec komutuna başka bir dosya. Fedora da start up kullanıyor. Ek olarak, Debian bile başlangıç ​​şemasını gelecekte Ubuntu şeması olacak SystemD olarak değiştiriyor.
Rael Gugelmin Cunha
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.