Saya mencoba menjalankan skrip shell dari systemd. Script berjalan dengan baik dari baris perintah.
Script (runServer.sh), menjalankan proses Java dan terlihat seperti ini:
#!/bin/bash
java -jar -Dresources=/home/pruss/dev/ServerDeploy5-4.1/Server/resources/MyServer.jar "0" "Test"
Di dalam /usr/lib/systemd/system
(atau /lib/systemd/system/
di OS lain) saya telah membuat file layanan (myService.service):
[Unit]
Description=My Servers service
[Service]
ExecStart=/home/pruss/dev/ServerDeploy5-4.1/Server/runServer.sh
User=root
Type=oneshot
[Install]
WantedBy=multi-user.target
Hasil
Job for myService.service failed. See "systemctl status myService.service" and "journalctl -xn" for details.
Saya coba:
systemctl status myService.service
Loaded: loaded (/usr/lib/systemd/system/myService.service; disabled)
Active: failed (Result: exit-code) since Thu 2015-07-23 12:27:38 BST; 26s ago
Main PID: 28413 (code=exited, status=203/EXEC)
Jawaban:
Anda mungkin tidak memerlukan skrip shell. Anda dapat memulai proses dari file myService.service asalkan Anda menggunakan path lengkap ke file biner java dan file jar. Seharusnya terlihat seperti
Bekerja pada CentOS 7.2.
sumber
Tidak yakin siapa yang memberi ini jempol ..
Saya menemukan solusi dan mempostingnya untuk menyelamatkan upaya orang lain.
Apa yang Anda lihat di atas berfungsi. Namun, layanan terakhir adalah:
Yang penting, di dalam skrip shell saya, saya harus meletakkan path lengkap file .jar. java -jar /home/myprog.jar dll
yaitu ./myJar.jar tidak bekerja. Semoga itu bisa membantu.
sumber
Lihatlah jawaban saya di stackoverflow yang merinci cara membuat
systemd
layanan untuk aplikasi Java:/programming//a/22121547/272180
sumber
Ini adalah templat systemd saya untuk proses java
sumber
Saya memiliki masalah yang sama (kode = keluar, status = 203 / EXEC).
Jangan lupa untuk memberikan izin eksekusi skrip kepada pengguna Anda.
Anda mungkin ingin mengubah 777 ke sesuatu yang lebih ketat.
atau
Kemudian:
sumber
Anda mungkin perlu menambahkan WorkingDirectory = sehingga ia tahu dari mana harus menjalankan sesuatu.
sumber