Я предполагаю, что у вас есть Raspberry с использованием raspian, который, насколько мне известно, еще не перешел на systemd . В этом случае ответ будет следующим.
РЕДАКТИРОВАТЬ: для systemd (Джесси или позже), смотрите внизу .
Во-первых, вы можете определить, какая система работает в данный момент, с помощью команды:
sudo service --status-all
Вы получите список примерно так:
[ + ] triggerhappy
[ + ] udev
[ ? ] udev-mtab
[ ? ] umountfs
[ ? ] umountnfs.sh
[ ? ] umountroot
[ - ] urandom
[ + ] vsftpd
[ + ] weewx
[ - ] x11-common
Знаки « +» указывают на работающие службы, « -» службы не работают, « ?» - службы, которые не допускают статус в качестве возможной команды: в большинстве случаев это команды, которые не нужно запускать постоянно, а иногда.
Чтобы вернуться к вашему вопросу, вам нужно понять уровень запуска в Linux. Уровни запуска (0-6 + S) определяют, какие службы могут / должны быть запущены. Последовательность загрузки начинается с начального уровня запуска (указан в / etc / inittab , в моей Raspberry).
# The default runlevel.
id:2:initdefault:
эта строка определяет его как 2, а затем переходит к стандартному финальному уровню запуска вашего дистрибутива (от 2 до 5). Вы определяете свой текущий уровень выполнения с помощью команды
# runlevel
N 2
(в моем случае безголовый сервер). Другие уровни выполнения (снова из é / 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/ , где хранятся файлы, идентифицирующие различные сервисы. Строка, о которой идет речь, определяет уровень запуска, где должна запускаться каждая служба. Если служба запускается на уровне выполнения N, когда система переходит на N + 1, ее не нужно запускать снова, но если она не работает, она запускается.
Это дает вам точное представление о различных этапах запуска служб. Но на одном и том же уровне выполнения строки Required-Start и Should-Start определяют жесткие и мягкие зависимости для рассматриваемой службы, то есть службы, которые должны работать и должны запускаться до проверки службы. Без служб Required-Start соответствующая служба потерпит неудачу, без услуг Should-Start вместо этого не будет общего сбоя, возможно, просто нехватка некоторых полезных функций. То же самое происходит при остановке с помощью Required-Stop и Should-Stop.
SYSTEMD :
Команда для перечисления всех служб
systemctl list-unit-files
который будет выплевывать много информации. Чтобы выбрать все включенные службы , т. Е. Те, которые запускаются при загрузке, просто выполните команду grep следующим образом:
systemctl list-unit-files | grep enabled
Я предпочитаю эту команду системным спискам модулей : разница в том, что эта команда будет отображать только те сервисы, которые ваша ОС имеет в памяти = ОС считает, что это необходимо), в то время как системные файлы списков модулей будут отображать все установленные сервисы, включая те, которые замаскировано ( то есть те , которые , как предполагается , никогда не должен быть запущен, даже не вручную), и те , которые он не активировать, которые называются статическими . Другими словами, предложенная мною команда является более полной, чем та, в которой перечислены только активные службы.
Примечание : systemd сильно отличается от предыдущих систем инициализации. В частности, он имеет не уровни выполнения , а цели . Уровни выполнения все еще существуют по причинам совместимости, и их можно рассматривать как конкретные цели, перечисляя все доступные цели через
systemctl list-unit-files --type=target
в то время как вы можете увидеть свою текущую цель с помощью
$ systemctl get-default
graphical.target
Подробнее об этом вы можете прочитать на превосходной вводной странице DigitalOcean .
systemd
, но этот ответ все еще работает.Для простого запуска службы управления на Raspberry Pi я рекомендую инструмент
rcconf
. Позволяет легко включать / выключать сервисы в/etc/init.d/
. Вы также можете увидеть, если они включены и будут работать при запуске.Чтобы установить инструмент
И очень просто использовать его с текстовым интерфейсом
источник
rcconf
говорит вам, включен ли сервис или нет. Я отредактировал ответ, чтобы прямо сказать, что инструмент отображает этот конкретный вид информации.Здесь вы вставляете командный файл или команды для запуска при загрузке. Я автоматически запускаю Openvpn при загрузке :)
источник