มีคำสั่งให้แสดงรายการบริการที่ทำงานเมื่อเริ่มต้นหรือไม่ ฉันคิดว่ามันจะเกี่ยวข้องกับการแยกวิเคราะห์/etc/init.d/
และ/etc/rc.*
ไดเรกทอรีต่างๆ
มีคำสั่งให้แสดงรายการบริการที่ทำงานเมื่อเริ่มต้นหรือไม่ ฉันคิดว่ามันจะเกี่ยวข้องกับการแยกวิเคราะห์/etc/init.d/
และ/etc/rc.*
ไดเรกทอรีต่างๆ
คำตอบ:
คุณสามารถใช้initctl list
คำสั่งเชลล์เพื่อแสดงเนื้อหาของคำสั่งที่/etc/init
แนะนำdbus-send
คำตอบอย่างรวดเร็วคือ: ขึ้นอยู่กับinit
ระบบของคุณ
คำตอบยาว ๆ คือ: สำหรับ Ubuntu ปัจจุบันคุณอาจมีUpstartและSystemV ผสมกัน รุ่นใหม่ของ Ubuntu 15.04 หลังจาก "Vervet สดใส" (และลินุกซ์ distros อื่น ๆ เช่น RHEL / CentOS 7) กำลังจะย้ายไปใช้SystemD
ในการแสดงรายการบริการทั้งหมด:
initctl list
หากต้องการแสดงรายการบริการพุ่งพรวดทั้งหมดและเปิดใช้งานinitctl show-config
พวกเขาหนึ่งซับนี้อาจมีประโยชน์:
initctl list | awk '{ print $1 }' | xargs -n1 initctl show-config
ในการแสดงรายการบริการทั้งหมด:
service --status-all
หรือ:
# for init scripts:
ls /etc/init.d/
# for runlevel symlinks:
ls /etc/rc*.d/
ในการแสดงรายการบริการทั้งหมด:
systemctl list-unit-files --type=service
หรือ:
ls /lib/systemd/system/*.service /etc/systemd/system/*.service
service --status-all
ไม่แสดงว่ามีการเปิดใช้งานบริการเพื่อเริ่มการบู๊ตอย่างน้อยไม่ได้อยู่ใน Ubuntu 16 มันแสดงให้เห็นว่าบริการกำลังทำงานอยู่หรือไม่
sudo service --status-all
ได้รับบริการทั้งหมดเพื่อแสดง มีบางส่วนที่ถูกซ่อนไว้เมื่อฉันรันเฉพาะservice --status-all
บัญชีที่ไม่ใช่รูท
systemctl
, service
, initctl
... ) ที่พวกเขาได้รับการพิจารณาโดยปกติคำสั่งการบริหารระบบ
/etc/init.d
และ/etc/rc.*
ไดเรกทอรีได้รับการแทนที่โดย ' upstart
' เครื่องมือ init แม้ว่าสคริปต์ในไดเรกทอรีเหล่านี้จะถูกดำเนินการตามที่คาดไว้วิธีการใหม่สำหรับการเรียกใช้สิ่งต่าง ๆ บน init ถูกกำหนดโดยไฟล์ใน/etc/init/
คุณสามารถแสดงรายการงานพุ่งพรวดทั้งหมดด้วยการสอบถามพุ่งพรวดผ่าน dbus:
dbus-send --print-reply --system --dest=com.ubuntu.Upstart \
/com/ubuntu/Upstart com.ubuntu.Upstart0_6.GetAllJobs
คุณอาจต้องเปลี่ยน0_6
เพื่อให้สอดคล้องกับรุ่นของการพุ่งพรวดที่คุณมี คำสั่งนี้ทำงานกับการติดตั้งชัดเจนของฉัน
initctl list
ดีกว่าคำสั่ง dbus นี้มาก ฉันต้องการออกจากคำตอบนี้ที่นี่เพื่ออ้างอิง (แทนที่จะลบทิ้งทั้งหมด) แม้ว่า
หากคุณต้องการการแสดงกราฟิกที่ดีของบริการและเวลาที่ใช้ในการบูตลอง:
apt-get install bootchart
ID ใช้initctl show-config <servicename>
เพื่อรับรายละเอียดว่าเมื่อใด / หากบริการของคุณจะเริ่มระหว่างการบู๊ต
ชอบมาก
$ initctl show-config myservice
myservice
start on runlevel [2345]
stop on runlevel [!2345]
หรือสำหรับ NFS4 idmap-daemon:
$ initctl show-config idmapd
idmapd
start on (local-filesystems or mounting TYPE=nfs4)
stop on runlevel [06]
chkconfig สามารถใช้ได้กับระบบที่ใช้ RedHat เท่านั้น
ในวันที่ 12.04 เราสามารถใช้:
sudo apt-get install chkconfig
chkconfig --list
แต่มันก็ถูกถอดออกใน 12.10
ตัวอย่างผลลัพธ์:
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
สำหรับ Ubuntu 18.04 ให้ใช้:
systemctl list-units --type=service
แทน :
initctl
ในฐานะที่เป็นจากอูบุนตู 16.04, ได้ถูกแทนที่ด้วย
initctl
https://www.linuxtricks.fr/wiki/systemd-les-commandes-essentielles (FR_fr)systemd
(ถ้าสามารถช่วย @ sanjay-manohar)
นอกจากบริการระบบและสคริปต์ภายใต้:
/etc/init.d/
/ lib / systemd / system /
/ etc / systemd / system /
อาจมีแอปพลิเคชัน AutoStartด้วยเช่น:
find / -name "*autostart*"
ls -1 "/etc/xdg/autostart" "/home/$USER/.config/autostart" "/usr/share/gdm/autostart" "/usr/share/gnome/autostart"
ใช้เพ่งพิศ:
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)}}'
ตัวอย่างผลลัพธ์:
$ 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