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.