ฉันสมมติว่าคุณมีราสเบอร์รี่ใช้ raspian ซึ่งที่ดีที่สุดของความรู้ของฉันยังไม่ได้ย้ายไปsystemd ในกรณีนี้คำตอบมีดังนี้
แก้ไข: สำหรับ systemd (เจสซีหรือหลังจากนั้น) โปรดดูที่ด้านล่าง
ขั้นแรกคุณสามารถกำหนดได้ว่าระบบใดกำลังทำงานอยู่โดยใช้คำสั่ง:
sudo service --status-all
คุณจะได้รับรายชื่อดังนี้:
[ + ] triggerhappy
[ + ] udev
[ ? ] udev-mtab
[ ? ] umountfs
[ ? ] umountnfs.sh
[ ? ] umountroot
[ - ] urandom
[ + ] vsftpd
[ + ] weewx
[ - ] x11-common
+ 'sบ่งชี้ถึงการบริการที่ทำงานที่-'sบริการไม่ได้ทำงานที่' sบริการที่ไม่อนุญาตให้สถานะเป็นคำสั่งที่เป็นไปได้ที่พวกเขาส่วนใหญ่จะเป็นคำสั่งที่ไม่จำเป็นต้องทำงานตลอดเวลาเพียงแค่ครั้งคราว
หากต้องการกลับไปที่คำถามของคุณคุณต้องเข้าใจrunlevel s ใน Linux Runlevels (0-6 + S) ระบุว่าบริการใดบ้างที่อาจ / ต้องใช้งาน ลำดับการบู๊ตดำเนินไปจาก runlevel เริ่มต้น (ระบุใน/ etc / inittabใน Raspberry ของฉัน
# The default runlevel.
id:2:initdefault:
บรรทัดนี้ระบุว่าเป็น 2 จากนั้นไปยังระดับสุดท้ายของ distro มาตรฐานของคุณ (ตั้งแต่ 2 ถึง 5) คุณสามารถระบุระดับ runlevel ปัจจุบันของคุณโดยใช้คำสั่ง
# runlevel
N 2
(ในกรณีของฉันเซิร์ฟเวอร์หัวขาด) runlevels อื่นคือ (อีกครั้งจากé / etc / inittab *):
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.
ผู้ใช้คนเดียว (1) มักจะถูกระบุว่าเป็น S
ในการบูตปกติคุณจึงเริ่มต้นที่ 2 และดำเนินไปจนถึง 5 เพื่อค้นหาบริการที่เริ่มต้นในความก้าวหน้านี้ให้ออกคำสั่ง:
# grep -nrI Default-Start /etc/init.d
umountroot:7:# Default-Start:
checkroot.sh:8:# Default-Start: S
kbd:6:# Default-Start: S
isc-dhcp-server:11:# Default-Start: 2 3 4 5
mountkernfs.sh:7:# Default-Start: S
hostname.sh:7:# Default-Start: S
mountnfs.sh:7:# Default-Start: S
halt:6:# Default-Start:
dphys-swapfile:20:# Default-Start: 2 3 4 5
bootlogs:7:# Default-Start: 1 2 3 4 5
rc.local:6:# Default-Start: 2 3 4 5
hostapd:9:# Default-Start: 2 3 4 5
keyboard-setup:8:# Default-Start: S
lightdm:7:# Default-Start: 2 3 4 5
procps:11:# Default-Start: S
mysql:9:# Default-Start: 2 3 4 5
single:6:# Default-Start: 1
vsftpd:7:# Default-Start: 2 3 4 5
samba:7:# Default-Start: 2 3 4 5
mountall.sh:6:# Default-Start: S
weewx:20:# Default-Start: 2 3 4 5
umountnfs.sh:7:# Default-Start:
triggerhappy:6:# Default-Start: 2 3 4 5
ifplugd:24:# Default-Start: 2 3 4 5
alsa-utils:9:# Default-Start: S
bootmisc.sh:7:# Default-Start: S
sendsigs:6:# Default-Start:
console-setup:7:# Default-Start: S
nfs-common:7:# Default-Start: 2 3 4 5 S
checkroot-bootclean.sh:6:# Default-Start: S
rsyslog:7:# Default-Start: 2 3 4 5
x11-common:7:# Default-Start: S
mountdevsubfs.sh:7:# Default-Start: S
cron:10:# Default-Start: 2 3 4 5
mountnfs-bootclean.sh:6:# Default-Start: S
mountall-bootclean.sh:6:# Default-Start: S
screen-cleanup:11:# Default-Start: S
udev:6:# Default-Start: S
ssh:7:# Default-Start: 2 3 4 5
haveged:8:# Default-Start: 2 3 4 5
hwclock.sh:26:# Default-Start: S
plymouth:9:# Default-Start: 2 3 4 5
motd:7:# Default-Start: 1 2 3 4 5
killprocs:6:# Default-Start: 1
networking:6:# Default-Start: S
fake-hwclock:9:# Default-Start: S
udev-mtab:6:# Default-Start: S
apache2:6:# Default-Start: 2 3 4 5
reboot:6:# Default-Start:
umountfs:6:# Default-Start:
plymouth-log:9:# Default-Start: S
openvpn:11:# Default-Start: 2 3 4 5
kmod:8:# Default-Start: S
ntp:7:# Default-Start: 2 3 4 5
rpcbind:9:# Default-Start: S 2 3 4 5
urandom:6:# Default-Start: S
rmnologin:6:# Default-Start: 2 3 4 5
checkfs.sh:7:# Default-Start: S
sudo:8:# Default-Start: 2 3 4 5
mtab.sh:6:# Default-Start: S
dbus:6:# Default-Start: 2 3 4 5
rsync:8:# Default-Start: 2 3 4 5
สิ่งนี้จะพิมพ์บรรทัดที่ขึ้นต้นด้วยDefault-Startในไฟล์ทั้งหมดใน/etc/init.d/ซึ่งเป็นที่เก็บไฟล์ที่ระบุบริการต่างๆ บรรทัดที่มีปัญหาระบุถึง runlevel ที่จะเริ่มให้บริการแต่ละบริการ หากเซอร์วิสถูกสตาร์ทที่ runlevel N เมื่อระบบดำเนินการไปที่ N + 1 ก็ไม่จำเป็นต้องเริ่มต้นใหม่อีกครั้ง แต่หากพบว่าไม่ได้รันอยู่ก็จะเริ่มทำงาน
สิ่งนี้จะช่วยให้คุณมีความคิดที่ชัดเจนเกี่ยวกับขั้นตอนต่างๆที่บริการเริ่มต้น แต่ภายใน runlevel เดียวกันบรรทัดที่ต้องการ - เริ่มและควรเริ่มกำหนดการอ้างอิงที่ยากและนุ่มนวลสำหรับบริการที่เป็นปัญหาคือบริการที่ต้องรันและควรรันก่อนที่จะตรวจสอบบริการ หากไม่มีบริการที่จำเป็นต้องเริ่มบริการที่เป็นปัญหาจะล้มเหลวหากไม่มีบริการที่ควรเริ่มแทนจะไม่มีความล้มเหลวทั่วไปอาจเป็นเพราะขาดคุณสมบัติที่มีประโยชน์บางอย่าง สิ่งเดียวกันนี้เกิดขึ้นเมื่อหยุดด้วย Required-Stop และ Should-Stop
SYSTEMD :
คำสั่งเพื่อแสดงรายการบริการทั้งหมดคือ
systemctl list-unit-files
ซึ่งจะคายข้อมูลมาก ในการเลือกบริการทั้งหมดที่เปิดใช้งาน , คือผู้ที่จะเริ่มต้นที่บูตเพียง grep คำสั่งดังกล่าวดังต่อไปนี้:
systemctl list-unit-files | grep enabled
ฉันชอบคำสั่งนี้เพื่อsystemctl list-units : ความแตกต่างคืออันนี้จะแสดงเฉพาะบริการที่ระบบปฏิบัติการของคุณมีอยู่ในหน่วยความจำ = ระบบปฏิบัติการคิดว่ามันต้องการ) ในขณะที่systemctl list-unit-filesจะแสดงบริการที่ติดตั้งทั้งหมดสวมหน้ากาก ( คือผู้ที่ควรไม่เคยที่จะเริ่มต้นไม่ได้ด้วยตนเอง) และผู้ที่จะไม่ได้เปิดใช้งานซึ่งเรียกว่าแบบคงที่ ในคำอื่น ๆ คำสั่งที่ผมแนะนำคือที่ครอบคลุมมากกว่าหนึ่งรายการเท่านั้นที่ใช้งานบริการ
หมายเหตุ : systemd แตกต่างจากระบบเริ่มต้นก่อนหน้านี้มาก โดยเฉพาะอย่างยิ่งมันไม่ได้มีrunlevelsแต่เป้าหมาย runlevelsยังคงมีอยู่สำหรับเหตุผลความเข้ากันได้และสามารถดูเป็นเป้าหมายที่เฉพาะเจาะจงโดยการแสดงรายการเป้าหมายที่มีอยู่ทั้งหมดผ่าน
systemctl list-unit-files --type=target
ในขณะที่คุณสามารถดูเป้าหมายปัจจุบันของคุณโดยการ
$ systemctl get-default
graphical.target
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้คุณอาจจะอ่านDigitalOcean's หน้าแนะนำที่ดีเยี่ยม
systemd
แต่คำตอบนี้ยังคงใช้ได้