systemctl không nhận ra dịch vụ của tôi: Mặc định-Start không chứa runlevels, hủy bỏ


13

Tôi muốn xác định một dịch vụ đơn giản sẽ bắt đầu khi khởi động, trên máy chủ Ubuntu 16.10. Vì vậy, tôi đã tạo ra một/etc/init.d/mydaemon

Tôi bằng cách nào đó đã nhầm lẫn giữa upstart và systemd: lúc đầu tôi nghĩ rằng tôi phải thiết lập một dịch vụ mới nhất. Vì vậy, sau khi chuyển đổi tập tin của tôi thành một cú pháp mới, tôi đã chạy update-rc.d mydaemon defaults.

Tôi đã tìm ra lỗi của mình và chạy update-rc.d mydaemon remove, chuyển đổi thành cú pháp systemd và chạy systemctl enable mydaemon, nhưng gặp lỗi:

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.

Câu trả lời:


14

Tôi đã gặp lỗi tương tự khi chuyển tập lệnh sysv từ hộp redhat sang ubfox. Tôi cần thêm một số tiêu đề vào kịch bản

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

được tìm thấy trong https://askubfox.com/questions/909523/default-start-contains-no-runlevels-aborting



1
Kịch bản của tôi đã có trình đọc này nhưng vẫn hiển thị chính xác lỗi tương tự .. = [
Luciano Andress Martini

đã cứu ngày của tôi :-) Rất cám ơn
Aravinthan K

11

Vấn đề là vị trí của tệp, trên máy chủ Ubuntu mà nó mong đợi /etc/systemd/system, /etc/init.d/là dành cho các tệp cũ.


giải pháp này đã sửa chữa dịch vụ của tôi
AmirHossein Rezaei

Tôi nghĩ giải pháp này không hoạt động nếu tập lệnh init là tập lệnh bash. Thay vì sao chép tệp, các tham số ở cấp độ chạy phải được thêm dưới dạng nhận xét dưới dạng nick fox được đăng trong câu trả lời của họ.
LaTechneuse

Chắc chắn, câu hỏi ban đầu là trên một .servicetập tin, không phải là một tập lệnh bash init.
CharlesB

7

Chỉ cần thêm vào câu trả lời từ @CharlesB - khi tôi vào trạng thái này, tôi có thể chỉ cần di chuyển tệp từ /etc/init.d/đến /etc/systemd/system/và chạy lại lệnh và nó hoạt động đúng:

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

1
Đây nên là một bình luận.
Gerald Schneider

Tôi nghĩ rằng đó là một câu trả lời dễ dàng hơn, vì vậy làm cho nó một.
Cory

0

Tôi đã có cùng một lỗi và tôi đã sửa nó bằng cách đặt thông tin bắt đầu mặc định, như sau:

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

Thay đổi từ:

# Default-Start:

đến:

# Default-Start: 2 3 4 5

: wq

root @ kali: /etc/init.d# systemctl kích hoạt greenbone-security-trợ lý

Đồng bộ hóa trạng thái của greenbone-security-Assistant.service với tập lệnh dịch vụ SysV với / lib / systemd / systemd-sysv-install.

Đang thực thi: / lib / systemd / systemd-sysv-install cho phép trợ lý bảo mật

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.