systemctl tidak mengenali layanan saya: Default-Start tidak mengandung runlevel, dibatalkan

14

Saya ingin mendefinisikan layanan sederhana untuk dimulai saat boot, berada di server Ubuntu 16.10. Jadi saya telah membuat/etc/init.d/mydaemon

Saya entah bagaimana kacau antara pemula dan systemd: pada awalnya saya pikir saya harus menyiapkan layanan pemula. Jadi setelah mengkonversi file saya ke sintaks pemula, saya berlari update-rc.d mydaemon defaults.

Saya menemukan kesalahan saya dan berlari update-rc.d mydaemon remove, dikonversi ke sintaks systemd, dan berlari systemctl enable mydaemon, tetapi mendapatkan kesalahan:

mydaemon.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable mydaemon
update-rc.d: error: mydaemonDefault-Start contains no runlevels, aborting.
CharlesB
sumber

Jawaban:

15

Saya memiliki kesalahan yang sama ketika porting skrip sysv dari kotak redhat ke ubuntu. Saya perlu menambahkan beberapa header ke skrip

### BEGIN INIT INFO
# Provides:          my-service-name
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: your description here
### END INIT INFO

ditemukan di /ubuntu/909523/default-start-contains-no-runlevels-aborting

nick fox
sumber
lihat juga wiki.debian.org/LSBInitScripts
nick fox
1
Skrip saya sudah memiliki pembaca ini tetapi masih menunjukkan kesalahan yang persis sama .. = [
Luciano Andress Martini
menyelamatkan hari saya :-) Banyak Terima Kasih
Aravinthan K
11

Masalahnya adalah lokasi file, pada server Ubuntu yang diharapkannya /etc/systemd/system, /etc/init.d/adalah untuk file lawas.

CharlesB
sumber
solusi ini memperbaiki layanan saya
AmirHossein Rezaei
Saya pikir solusi ini tidak berfungsi jika skrip init adalah skrip bash. Alih-alih menyalin file, parameter pada level run harus ditambahkan sebagai komentar sebagai nick fox yang diposting dalam jawaban mereka.
LaTechneuse
Tentu, pertanyaan awal ada di .servicefile, bukan skrip init bash.
CharlesB
7

Hanya dengan menambahkan jawaban dari @CharlesB - ketika saya masuk ke kondisi ini saya dapat dengan mudah memindahkan file dari /etc/init.d/ke /etc/systemd/system/dan menjalankan kembali perintah dan itu bekerja dengan baik:

sudo mv /etc/init.d/mydaemon /etc/systemd/system/
sudo systemctl enable mydaemon
Cory
sumber
1
Ini harus menjadi komentar.
Gerald Schneider
Saya pikir ini adalah jawaban yang lebih mudah diikuti, jadi buatlah satu.
Cory
0

Saya memiliki kesalahan yang sama dan saya memperbaikinya dengan meletakkan informasi awal yang standar, sebagai berikut:

vi /etc/init.d/greenbone-security-assistant

Ubah dari:

# Default-Start:

untuk:

# Default-Start: 2 3 4 5

: wq

root @ kali: /etc/init.d# systemctl mengaktifkan greenbone-security-assistant

Menyinkronkan keadaan greenbone-security-assistant.service dengan skrip layanan SysV dengan / lib / systemd / systemd-sysv-install.

Menjalankan: / lib / systemd / systemd-sysv-install memungkinkan greenbone-security-assistant

Fernando Galves
sumber