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.
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.
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.
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; -)