Saya berasumsi Anda memiliki Raspberry menggunakan raspian, yang, sejauh pengetahuan saya, belum pindah ke systemd . Dalam hal ini, jawabannya adalah sebagai berikut.
EDIT: untuk systemd (Jessie atau yang lebih baru), lihat di bagian bawah .
Pertama, Anda dapat menentukan sistem mana yang sedang berjalan dengan menggunakan perintah:
sudo service --status-all
Anda akan mendapatkan daftar seperti ini:
[ + ] triggerhappy
[ + ] udev
[ ? ] udev-mtab
[ ? ] umountfs
[ ? ] umountnfs.sh
[ ? ] umountroot
[ - ] urandom
[ + ] vsftpd
[ + ] weewx
[ - ] x11-common
The + 's menunjukkan layanan yang berjalan, yang para jasa tidak berjalan, ?' S layanan yang tidak memungkinkan statusnya sebagai perintah mungkin: mereka sebagian besar perintah yang tidak perlu menjalankan semua waktu, hanya kadang-kadang.
Untuk kembali ke pertanyaan Anda, Anda perlu memahami runlevel di Linux. Runlevels (0-6 + S) mengidentifikasi layanan mana yang harus / harus dijalankan. Urutan boot berjalan dari runlevel awal (ditentukan di / etc / inittab , di Raspberry saya
# The default runlevel.
id:2:initdefault:
baris ini mengidentifikasinya sebagai 2, dan kemudian berlanjut ke runlevel final distro standar Anda (dari 2 menjadi 5). Anda mengidentifikasi runlevel Anda saat ini melalui perintah
# runlevel
N 2
(dalam kasus saya, server tanpa kepala). Runlevel lainnya adalah (lagi dari é / etc / inittab *):
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.
Pengguna tunggal (1) sering juga diidentifikasi sebagai S.
Dalam boot normal, maka Anda mulai dari 2, dan maju hingga 5. Untuk menemukan layanan yang dimulai pada perkembangan ini, buat perintah:
# 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
Ini mencetak baris yang dimulai dengan Default-Start di semua file di /etc/init.d/ , yang merupakan tempat file yang mengidentifikasi berbagai layanan disimpan. Baris yang dimaksud mengidentifikasi runlevel tempat setiap layanan akan dimulai. Jika suatu layanan dimulai pada runlevel N, ketika sistem berkembang ke N +1, itu tidak perlu dimulai lagi, tetapi jika ternyata tidak berjalan, maka itu dimulai.
Ini memberi Anda gambaran yang tepat tentang berbagai tahap di mana layanan dimulai. Tetapi dalam runlevel yang sama, garis-garis Diperlukan-Mulai dan Harus-Mulai menentukan dependensi keras dan lunak untuk layanan yang dimaksud, yaitu layanan yang harus dijalankan dan harus berjalan sebelum layanan diperiksa. Tanpa layanan Start-Wajib, layanan yang dipermasalahkan akan gagal, tanpa layanan Start Wajib, tidak akan ada kegagalan umum, mungkin hanya karena kurangnya beberapa fitur yang bermanfaat. Hal yang sama terjadi pada saat berhenti dengan Harus-Berhenti dan Harus-Berhenti.
SYSTEMD :
Perintah untuk mendaftar semua layanan adalah
systemctl list-unit-files
yang akan memuntahkan banyak info. Untuk memilih semua layanan yang diaktifkan , yaitu yang dimulai saat boot, cukup ambil perintah di atas sebagai berikut:
systemctl list-unit-files | grep enabled
Saya lebih suka perintah ini untuk daftar-unit systemctl : perbedaannya adalah bahwa yang satu ini hanya akan menampilkan layanan yang dimiliki OS Anda dalam memori = OS menganggapnya perlu), sedangkan daftar-unit-file-file systemctl akan menampilkan semua layanan yang diinstal, termasuk yang bertopeng ( yaitu orang-orang yang seharusnya tidak pernah dimulai, bahkan tidak manual), dan orang-orang yang akan tidak mengaktifkan, yang disebut statis . Dengan kata lain, perintah yang saya sarankan lebih komprehensif daripada yang hanya mendaftar layanan aktif .
NB : systemd sangat berbeda dari sistem init sebelumnya. Secara khusus, ia tidak memiliki runlevel , tetapi target . runlevel masih ada karena alasan kompatibilitas, dan dapat dilihat sebagai target spesifik dengan mendaftar semua target yang tersedia melalui
systemctl list-unit-files --type=target
sementara Anda dapat melihat target Anda saat ini melalui
$ systemctl get-default
graphical.target
Untuk lebih lanjut tentang ini, Anda dapat membaca halaman pengantar yang sangat baik dari DigitalOcean .
systemd
, tetapi jawaban ini tampaknya masih berfungsi.Untuk manajemen layanan startup sederhana di Raspberry Pi, saya merekomendasikan alat
rcconf
. Ini memungkinkan Anda untuk dengan mudah menghidupkan / mematikan layanan di/etc/init.d/
. Anda juga dapat melihat apakah mereka diaktifkan dan akan berjalan saat startup.Untuk menginstal alat
Dan sangat mudah digunakan dengan teks UI
sumber
rcconf
memberi tahu Anda apakah layanan diaktifkan atau tidak. Saya mengedit jawaban untuk secara eksplisit mengatakan bahwa alat ini menunjukkan informasi jenis ini.Di sinilah Anda memasukkan file batch atau perintah untuk dijalankan saat boot. Saya juga menjalankan Openvpn saat boot :)
sumber