GNU/Linux >> Belajar Linux >  >> Ubuntu

Ubuntu – Membuat File Unit Di Ubuntu 16.04?

Saya telah membuat file Unit ini di /lib/systemd/system/menu-core-prices-update.service :

[Unit]
Description = core-price-update daemon
After network.target = auditd.service

[Service]
Type = forking
ExecStart = /usr/local/bin/start-menu-core-prices-update.sh
ExecStop =  /usr/local/bin/stop-menu-core-prices-update.sh
ExecReload = /usr/local/bin/reload-stop-menu-core-prices-update.sh

[Install]
WantedBy = multi-user.target

Dari baris perintah saya dapat menjalankan:

$ /usr/local/bin/start-menu-core-prices-update.sh

dan program dimulai dengan benar. Tetapi jika saya memulai daemon:

$ sudo systemctl start menu-core-prices-update.service

Saya mendapatkan kesalahan ini:

Jul 24 21:10:20 localhost systemd[13655]: menu-core-prices-update.service: Failed at step EXEC spawning /usr/local/bin/start-menu-core-prices-update.sh: Exec format error
-- Subject: Process /usr/local/bin/start-menu-core-prices-update.sh could not be executed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- The process /usr/local/bin/start-menu-core-prices-update.sh could not be executed and failed.
-- 
-- The error number returned by this process is 8.
Jul 24 21:10:20 localhost systemd[1]: menu-core-prices-update.service: Control process exited, code=exited status=203
Jul 24 21:10:20 localhost systemd[1]: Failed to start core-price-update daemon.
-- Subject: Unit menu-core-prices-update.service has failed

Izin:

-rwxr-xr-x 1 root root 87 Jul 24 20:27 /usr/local/bin/start-menu-core-prices-update.sh

Jawaban yang Diterima:

Masalah #1

Saya menemukan utas ini berjudul:[Terpecahkan] Tambahkan skrip khusus ke systemd yang memiliki kesalahan yang sama seperti yang ditunjukkan output Anda di atas, terutama bit ini:

Gagal pada langkah EXEC spawning /usr/local/bin/start-menu-core-prices-update.sh:Exec format error

Kesalahan ini biasanya berarti bahwa skrip Anda memiliki satu atau beberapa masalah berikut:

  • Tidak dapat dijalankan
  • Tidak ada shebang (#!/bin/bash )

Untuk mengatasinya, pastikan skrip Anda dapat dieksekusi:

$ chmod a+x /usr/local/bin/start-menu-core-prices-update.sh

Dan pastikan untuk menambahkan shebang, #!/bin/bash ke atas.

Masalah #2

Sepertinya Anda salah ketik pada baris ini:

After network.target = auditd.service

Ini mungkin seharusnya ini:

After=network.target auditd.service

Masalah #3

Tidak jelas bagi saya mengapa Anda menggunakan Type = forking . Saat Anda menggunakan jenis ini, Anda ExecStart= diperlukan untuk menggunakan metode yang memanggil fork() . Anda juga seharusnya menggunakan PIDFile= pilihan.

Saya berharap aplikasi Java Anda akan bekerja dengan baik dengan simple atau oneshot . Lihat T&J U&L ini berjudul:Forking dalam skrip systemd untuk mengetahui lebih lanjut tentang ini.


Ubuntu
  1. Bagaimana cara menemukan file di Ubuntu?

  2. Bagaimana Cara Mencadangkan Telepon Ubuntu?

  3. Bagaimana Menghubungkan Nexus 7 Untuk Mentransfer File??

  1. Bagaimana Cara Menjalankan File .exe Di Ubuntu??

  2. Ubuntu Membuat Readme.md yang Tidak Diinginkan~?

  3. Temukan file apa yang ada dalam paket di Ubuntu

  1. Cara unrar di Ubuntu

  2. Bagaimana Cara Mengakses File Ubuntu 11.04 Di Windows 7??

  3. Membuat VM Ubuntu untuk didistribusikan