Câu trả lời:
Câu trả lời nhanh là: Nó phụ thuộc vào init
hệ thống của bạn .
Câu trả lời dài là: Đối với các phiên bản hiện tại của Ubuntu, bạn có thể có sự kết hợp của Upstart và SystemV . Các phiên bản mới hơn của Ubuntu sau 15.04 " Verv Vervet " (và các bản phân phối Linux khác như RHEL / CentOS 7) đang chuyển sang sử dụng SystemD .
Để liệt kê tất cả các dịch vụ:
initctl list
Để liệt kê tất cả các dịch vụ Upstart và chạy initctl show-config
trên chúng, lớp lót này có thể hữu ích:
initctl list | awk '{ print $1 }' | xargs -n1 initctl show-config
Để liệt kê tất cả các dịch vụ:
service --status-all
HOẶC LÀ:
# for init scripts:
ls /etc/init.d/
# for runlevel symlinks:
ls /etc/rc*.d/
Để liệt kê tất cả các dịch vụ:
systemctl list-unit-files --type=service
HOẶC LÀ:
ls /lib/systemd/system/*.service /etc/systemd/system/*.service
service --status-all
KHÔNG hiển thị liệu các dịch vụ có được kích hoạt để khởi động khi khởi động hay không, ít nhất là không phải trên Ubuntu 16. Nó cho thấy các dịch vụ hiện đang chạy hay chưa.
sudo service --status-all
có được tất cả các dịch vụ để hiển thị. Một số bị ẩn khi tôi chỉ chạy service --status-all
trên tài khoản không root.
systemctl
, service
, initctl
...) vì chúng thường được coi lệnh quản trị hệ thống.
Các /etc/init.d
và /etc/rc.*
thư mục đã được thay thế bởi upstart
công cụ ' ' init. Mặc dù các tập lệnh trong các thư mục này sẽ được thực thi như mong đợi, phương thức mới để chạy mọi thứ trên init được xác định bởi các tệp trong/etc/init/
Bạn có thể liệt kê tất cả các công việc mới bắt đầu bằng cách truy vấn mới bắt đầu qua dbus:
dbus-send --print-reply --system --dest=com.ubuntu.Upstart \
/com/ubuntu/Upstart com.ubuntu.Upstart0_6.GetAllJobs
Bạn có thể phải thay đổi 0_6
để phản ánh phiên bản mới bắt đầu mà bạn có. Lệnh này hoạt động trên cài đặt sáng suốt của tôi.
initctl list
đẹp hơn nhiều so với lệnh dbus này. Tôi muốn để lại câu trả lời này ở đây để tham khảo (thay vì xóa nó hoàn toàn).
Id sử dụng initctl show-config <servicename>
để thực sự có được thông tin chi tiết về thời điểm / nếu dịch vụ của bạn sẽ bắt đầu trong khi khởi động.
Thích như vậy:
$ initctl show-config myservice
myservice
start on runlevel [2345]
stop on runlevel [!2345]
Hoặc cho NFS4 idmap-daemon:
$ initctl show-config idmapd
idmapd
start on (local-filesystems or mounting TYPE=nfs4)
stop on runlevel [06]
chkconfig chỉ được ưu tiên trên các hệ thống dựa trên RedHat.
Vào ngày 12.04, chúng tôi có thể sử dụng:
sudo apt-get install chkconfig
chkconfig --list
nhưng nó đã được gỡ bỏ trong 12.10 .
Đầu ra mẫu:
acpi-support 0:off 1:off 2:on 3:on 4:on 5:on 6:off
acpid 0:off 1:off 2:off 3:off 4:off 5:off 6:off
apparmor 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
Đối với Ubuntu 18.04, hãy sử dụng:
systemctl list-units --type=service
thay vì :
initctl
Kể từ Ubuntu 16.04, initctl
đã được thay thế bởi systemd
.
https://www.linuxtricks.fr/wiki/systemd-les-commandes-essentielles (FR_fr)
(Nếu nó có thể giúp @ sanjay-manohar)
Bên cạnh các dịch vụ hệ thống và tập lệnh theo:
/etc/init.d/
/ lib / systemd / system /
/ etc / systemd / system /
Có lẽ cũng có Ứng dụng AutoStart , ví dụ:
find / -name "*autostart*"
ls -1 "/etc/xdg/autostart" "/home/$USER/.config/autostart" "/usr/share/gdm/autostart" "/usr/share/gnome/autostart"
Sử dụng gawk:
ls -l /etc/rc*.d/* | gawk 'match($0, /rc([0-6S]).d.*\/(.*)$/, a) {l[a[2]]=l[a[2]]a[1]","}; END{for(v in l){print v,substr(l[v],1,length(l[v])-1)}}'
Đầu ra mẫu:
$ ls -l /etc/rc*.d/* | gawk 'match($0, /rc([0-6S]).d.*\/(.*)$/, a) {l[a[2]]=l[a[2]]a[1]","}; END{for(v in l){print v,substr(l[v],1,length(l[v])-1)}}' | egrep README
README 0,1,2,3,4,5,6,S