Tôi có thể làm cho systemd hiển thị trạng thái dịch vụ sau khi bắt đầu hoặc dừng dịch vụ không?


8

Tôi đang cố gắng để systemd thực hiện những gì init.d scripts sẽ làm, hiển thị trạng thái dịch vụ tự động sau khi được cung cấp một lệnh thủ công để bắt đầu hoặc dừng. Đây có phải là cách nào đó có thể?

systemd không may bật lại ngay khi nó chạy trong nền và sau đó bạn phải thực hiện lệnh thứ hai để hiển thị trạng thái, bắt đầu hoặc dừng có thể hoặc không hoạt động, systemd sẽ không cho bạn biết trừ khi bạn hỏi và bỏ mặc bạn không biết gì.

I E. Tôi đang cố gắng để có được

service nginx status

chạy tự động sau khi tôi làm

service nginx start

hoặc là

service nginx restart

(hoặc trong hệ thống bị tổn thương não, systemctl start nginx.service)


1
Tôi sử dụng các lệnh "hại não" (tôi thích chúng!). Họ thực sự không nói gì khi mọi thứ đều ổn nhưng sẽ cho bạn biết khi có điều gì đó thất bại. Ít nhất đó là cách nó hoạt động trên openSUSE 13.1. Bạn có chắc là họ "im lặng" khi thất bại? Bạn đã thử systemctl start nginx.service && echo SUCCESS || echo failurechưa
Huygens

2
@Huygens không tin vào systemd có thể phát hiện ra tất cả các thất bại, chắc chắn có thể có những thất bại hoặc cảnh báo im lặng. Các quy trình được bắt đầu trong nền và kiểm soát thoát hệ thống, nó hoàn toàn không giống như init.d Tôi có thể thấy điều đó xảy ra một cách nhất quán với việc tạo tệp PID không thành công. Nhận trạng thái sau khi bắt đầu hoặc khởi động lại thủ công là điều bắt buộc với systemd (và quan điểm của câu hỏi của tôi).
ck_

cảm ơn đã làm rõ, tôi đã học được một cái gì đó ở đây! Tôi đang mong chờ câu trả lời cho câu hỏi này!
Huygens

Cú pháp braindead là dịch vụ một vì không giống như cú pháp systemd tốt hơn nhiều, nó không cho phép bạn hoạt động trên nhiều dịch vụ cùng một lúc: systemctl stop service1 service2 service3
god

1
Nếu bạn vẫn thấy sự không nhất quán tương tự khi kiểm tra trạng thái thoát systemctlnhư @Huygens đã đề xuất, thì vấn đề có thể là nginx.servicebắt đầu thành công nhưng gặp sự cố sau đó. Hãy thử kiểm tra tạp chí hoặc trong nhật ký Nginx.
Amir

Câu trả lời:


1

Không có lệnh tích hợp cho trường hợp sử dụng của bạn, vì vậy bạn sẽ phải tạo bí danh cho trình bao yêu thích của bạn hoặc trình bao bọc tập lệnh tầm thường.


0

Để làm cho systemd thêm "dài dòng", hãy thêm / bỏ ghi chú các dòng sau vào trong /etc/systemd/journald.confrồi khởi động lại:

ForwardToConsole=yes
MaxLevelConsole=debug
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.