Ubuntu Upstart üzerinde bir hizmet nasıl oluşturulur

20

Terminalde java -jar abc.jar yazarak çalıştırabileceğim bir Java yürütülebilir programım var. Bir hizmet olarak nasıl çalıştırabilirim? Bunu service abc start yazarak bir hizmet olarak çalıştırmak istiyorum.

    
sordu mecek 30.09.2013 16:21

2 cevap

37

14.04’ten olduğunuzdan emin olun. Ubuntu 16.04 (ve üzeri), Upstart'ı değil, systemd'yi kullanır.

Upstart betiği, /etc/init/ dizinine yerleştirilen ve .conf olarak biten bir komut dosyası dosyasıdır.

2 bölüm gerektirir: biri ne zaman başlayacağını belirtmek için, diğeri de yürütme komutu ile.

Numunenizle başlayabileceğiniz en kolay komut şudur:

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

Kök olarak /etc/init/myprogram.conf olarak oluşturuldu.

Komut dosyanızda birden fazla komut satırı gerekiyorsa, script satırı yerine exec bölümünü kullanın:

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

Hizmetiniz için bash tamamlamayı etkinleştirmek için /etc/init.d klasörüne bir sembol ekleyin:

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

Sonra başlatmayı ve durdurmayı deneyin:

sudo service myprogram start

upstart yemek kitabına göre, pre-start / post-start ve pre-stop / Yürütülecek post-stop komutu.

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

    
verilen cevap Rael Gugelmin Cunha 16.04.2014 14:01
0

Bir başlangıç ​​oluşturmalısınız. İşte

Upstart, iyi ol 'SysV init betiklerine kıyasla bir felakettir (IMHO). Upstart, eklenen çalışmaya biraz daha fazla dikkat ederek daha çok çaba harcar. Bununla birlikte, orada benim için açık olan birkaç görevli savunucu olacak şüpheliyim ki, açıklamak için bana göreve görev alacak; -)

    
verilen cevap Andrew 30.09.2013 16:35

Etiketlerdeki diğer soruları oku