systemctl ไม่รู้จักบริการของฉัน: Default-Start ไม่มี runlevels, ยกเลิก


15

ฉันต้องการกำหนดบริการง่าย ๆ ที่จะเริ่มตอนบูทอยู่บนเซิร์ฟเวอร์ Ubuntu 16.10 ดังนั้นฉันได้สร้าง/etc/init.d/mydaemon

ฉันสับสนระหว่างพุ่งพรวดและ systemd: ตอนแรกฉันคิดว่าฉันต้องติดตั้งบริการพุ่งพรวด update-rc.d mydaemon defaultsดังนั้นหลังจากการแปลงไฟล์ของฉันไปยังไวยากรณ์พุ่งพรวดฉันวิ่ง

ฉันพบข้อผิดพลาดของฉันและรันupdate-rc.d mydaemon removeเปลี่ยนเป็นไวยากรณ์ systemd และรันsystemctl enable mydaemonแต่รับข้อผิดพลาด:

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.

คำตอบ:


16

ฉันมีข้อผิดพลาดเดียวกันเมื่อทำการย้ายสคริปต์ sysv จากกล่อง redhat ไปยัง Ubuntu ฉันต้องการเพิ่มส่วนหัวของสคริปต์

### 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

พบได้ใน/ubuntu/909523/default-start-contain-no-runlevels-aborting



1
สคริปต์ของฉันมีผู้อ่านนี้แล้ว แต่ยังคงแสดงข้อผิดพลาดเหมือนเดิม .. = [
Luciano Andress Martini

บันทึกวันของฉัน :-) ขอบคุณมาก
Aravinthan K

11

ปัญหาที่เกิดขึ้นเป็นที่ตั้งของแฟ้มบนเซิร์ฟเวอร์ Ubuntu คาดว่าใน/etc/systemd/system, /etc/init.d/สำหรับไฟล์เดิม


วิธีนี้แก้ไขบริการของฉัน
AmirHossein Rezaei

ฉันคิดว่าวิธีนี้จะไม่ทำงานหากสคริปต์ init เป็น bash script แทนการคัดลอกไฟล์พารามิเตอร์ในระดับการทำงานจะต้องเพิ่มเป็นความคิดเห็นเป็นนิคฟ็อกซ์โพสต์ในคำตอบของพวกเขา
LaTechneuse

แน่นอนว่าคำถามเริ่มต้นอยู่ใน.serviceไฟล์ไม่ใช่สคริปต์เริ่มต้น bash
CharlesB

7

เพียงเพิ่มคำตอบจาก @CharlesB - เมื่อฉันเข้าสู่สถานะนี้ฉันสามารถย้ายไฟล์จาก/etc/init.d/ไปยัง/etc/systemd/system/และรันคำสั่งอีกครั้งและทำงานได้อย่างถูกต้อง:

sudo mv /etc/init.d/mydaemon /etc/systemd/system/
sudo systemctl enable mydaemon

1
นี่ควรเป็นความคิดเห็น
Gerald Schneider

ฉันคิดว่ามันง่ายกว่าที่จะทำตามคำตอบ
คอรี

0

ฉันมีข้อผิดพลาดเดียวกันและฉันแก้ไขมันโดยใส่ข้อมูลเริ่มต้นเริ่มต้นดังนี้:

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

เปลี่ยนจาก:

# Default-Start:

ถึง:

# Default-Start: 2 3 4 5

: WQ

root @ kali: /etc/init.d# systemctl เปิดใช้งาน greenbone-security-Assistant

การซิงโครไนซ์สถานะของ greenbone-security-Assistant.service กับสคริปต์บริการ SysV กับ / lib / systemd / systemd-sysv-install

การดำเนินการ: / lib / systemd / systemd-sysv-install เปิดใช้งาน greenbone-security-Assistant

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.