Saya memiliki program Java executable yang dapat saya jalankan dengan mengetikkan java -jar abc.jar
terminal. Bagaimana saya bisa menjalankannya sebagai layanan? Saya ingin menjalankannya sebagai layanan seperti dengan mengetik service abc start
.
21
Jawaban:
Pastikan Anda menggunakan 14,04. Ubuntu 16.04 (dan di atas) menggunakan systemd, bukan pemula.
Skrip pemula adalah file skrip yang ditempatkan di
/etc/init/
dan diakhiri dengan.conf
.Dibutuhkan 2 bagian: satu untuk menunjukkan kapan memulai, dan yang lain dengan perintah untuk mengeksekusi.
Skrip termudah untuk memulai dengan sampel Anda adalah:
Dibuat sebagai root di bawah
/etc/init/myprogram.conf
.Jika skrip Anda memerlukan lebih dari satu baris perintah, gunakan
script
bagian alih-alihexec
baris:Untuk mengaktifkan penyelesaian bash untuk layanan Anda, tambahkan symlink ke
/etc/init.d
folder:Kemudian coba mulai dan hentikan:
Menurut buku masak pemula , Anda dapat membuat
pre-start
/post-start
danpre-stop
/post-stop
perintah untuk dieksekusi.Selain itu, saya membaca Anda ingin memeriksa apakah suatu proses sedang berjalan. Periksa pertanyaan ini dan mungkin gunakan
pre-start
bagian ini.sumber
sudo chmod +x /etc/init.d/myprogram
. PERHATIAN: metode Anda yang dijawab tidak berfungsi di Ubuntu 16.04!start on
bukan bait suci yang diperlukan. Seperti yang Anda baca di sini : Pekerjaan seperti itu hanya dapat dikontrol oleh Administrator .Anda perlu membuat pemula. http://upstart.ubuntu.com/getting-started.html
Pemula adalah (IMHO) bencana dibandingkan dengan skrip init ol SysV yang baik. Pemula adalah JAUH lebih banyak upaya dengan sedikit terbalik ke pekerjaan yang ditambahkan. Dengan mengatakan itu, saya menduga akan ada beberapa bek pemula di luar sana yang akan membawa saya ke tugas bagi saya untuk menyatakan yang jelas ;-)
sumber