Làm thế nào tôi có thể liệt kê tất cả các enabled
dịch vụ từ systemctl
?
Tôi biết việc chạy systemctl
lệnh tự liệt kê tất cả các dịch vụ, nhưng tôi chỉ muốn nhận các dịch vụ enabled
.
man systemctl
.
Làm thế nào tôi có thể liệt kê tất cả các enabled
dịch vụ từ systemctl
?
Tôi biết việc chạy systemctl
lệnh tự liệt kê tất cả các dịch vụ, nhưng tôi chỉ muốn nhận các dịch vụ enabled
.
man systemctl
.
Câu trả lời:
systemctl list-unit-files | grep enabled
sẽ liệt kê tất cả những cái được kích hoạt .
Nếu bạn muốn cái nào đang chạy , bạn cần systemctl | grep running
.
Sử dụng một trong những bạn đang tìm kiếm. Đã bật, không có nghĩa là nó đang chạy. Và chạy không có nghĩa là nó được kích hoạt. Họ là hai việc khác nhau.
Đã bật nghĩa là hệ thống sẽ chạy dịch vụ trong lần khởi động tiếp theo. Vì vậy, nếu bạn kích hoạt một dịch vụ, bạn vẫn cần khởi động thủ công hoặc khởi động lại và nó sẽ bắt đầu.
Chạy có nghĩa là nó thực sự đang chạy ngay bây giờ, nhưng nếu nó không được bật, nó sẽ không khởi động lại khi bạn khởi động lại.
systemctl | grep running
đừng liệt kê bất cứ điều gì với tôi Ngay cả khi một cái gì đó đang chạy chỉ được liệt kê như trạng thái của anh ấy như:enabled, disabled, masked, static
systemctl list-unit-files --state=running
man systemctl
Những trạng thái:
--state=
Đối số phải là một danh sách bằng dấu phẩy của đơn vị
LOAD
,SUB
hoặcACTIVE
tiểu bang. Khi liệt kê các đơn vị, chỉ hiển thị những đơn vị ở các trạng thái được chỉ định. Sử dụng--state=failed
để chỉ hiển thị các đơn vị thất bại.
Giải trình:
LOAD
: Phản ánh xem định nghĩa đơn vị đã được tải đúng cách.
ACTIVE
: Trạng thái kích hoạt đơn vị cấp cao, nghĩa là tổng quát hóa SUB
.
SUB
: Trạng thái kích hoạt đơn vị cấp thấp, các giá trị phụ thuộc vào loại đơn vị.
Mặc dù bạn cũng có thể sử dụng điều này để chỉ hiển thị enabled
các đơn vị với:
systemctl list-unit-files --state=enabled
Nếu một đơn vị enabled
đó có nghĩa là hệ thống sẽ khởi động nó khi khởi động. Mặc dù thiết lập một cái gì đó enabled
không thực sự cũng start
vậy, vì vậy bạn sẽ cần phải làm điều đó bằng tay hoặc khởi động lại hệ thống sau khi cài đặt nó enabled
.
systemctl enable --now ...
--state=enabled
không có tác dụng đối với phiên bản systemd 215 (trên Raspbian 8 Jessie), nhưng nó hoạt động trên phiên bản systemd 229 (trên Ubuntu 16.04.03 Xenial).
Để liệt kê tất cả các systemd
dịch vụ trong state=active
vàsub=running
systemctl list-units --type=service --state=running
Để liệt kê tất cả các systemd
serice trong state=active
và phụ đang chạy hoặc thoát
systemctl list-units --type=service --state=active
Để xem các dịch vụ 'được kích hoạt', bao gồm cả các dịch vụ vẫn đang được khởi động / init chạy:
systemctl list-unit-files --type service --state enabled,generated
Để xem tất cả các dịch vụ hiện đang chạy:
systemctl list-units --type service --state running
sshd
so với ssh
và syslog
so với rsyslog
.
Ngoài ra tổng quan về tất cả các dịch vụ đang hoạt động và thất bại:
systemctl list-units --type service --state running,failed