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.

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



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.


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

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.