Как узнать, какие службы запускаются при запуске на Raspberry Pi? (raspbian)

У меня есть некоторые услуги, которые работают при загрузке, но я на самом деле забыл, как я их настроить! Если я хочу изменить их деятельность, как я могу это сделать? Например, может быть, я хочу отключить службу от запуска при загрузке или, может быть, я хочу, чтобы начать его с помощью другого метода.

в частности, у меня есть служба openvpn, которая успешно работает при загрузке, но некоторые учебники говорят, что я должен связать службу программ обмена файлами с самой vpn, чтобы, если vpn отключается, это так файлообменный сервис. Но я думаю, что, возможно, автозапуск моего vpn усложняет ситуацию, и я должен отключить его или изменить способ его запуска. Но как это проверить?

11
задан user1502186
30.11.2022 0:33 Количество просмотров материала 2831
Распечатать страницу

3 ответа

Я предполагаю, что у вас есть малина с использованием raspian, который, насколько мне известно, еще не перешел на systemd. В этом случае ответ будет следующим.

EDIT: для systemd (Jessie или более поздней версии), см. В нижней части.

во-первых, вы можете определить, какой системы в настоящее время запуск с помощью команды:

  sudo service --status-all

вы получите список примерно так:

  [ + ]  triggerhappy
  [ + ]  udev
  [ ? ]  udev-mtab
  [ ? ]  umountfs
  [ ? ]  umountnfs.sh
  [ ? ]  umountroot
  [ - ]  urandom
  [ + ]  vsftpd
  [ + ]  weewx
  [ - ]  x11-common

+s укажите запущенные службы, - s услуги не работает,?s услуги, которые не позволяют статус как возможная команда: это в основном команды, которые не нужно запускать все время, только иногда.

чтобы вернуться к своему вопросу, нужно понять runlevels в 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) также часто идентифицируется С.

в нормальном ботинке, таким образом вы начинаете на 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

строка, начинающаяся с По Умолчанию-Start во всех файлах / etc / init.d/, где хранятся файлы, идентифицирующие различные службы. Линия определяет уровень, где каждая служба запускается. Если сервис запущен на уровне N, когда система прогрессирует до N+1, ее не нужно запускать снова, но если она обнаружила, что она не запущена, она запускается.

это дает точное представление о различных этапах запуска служб. Но на том же уровне выполнения строки Required-Start и Should-Start определяют жесткие и мягкие зависимости для рассматриваемой службы,то есть услуги, которые должны run и должны запуск перед проверкой службы. Без Требуется - запуск службы, Служба в вопросе не будет, без следует запустить службы вместо этого не будет общего сбоя, возможно, просто отсутствие некоторых полезных функций. То же самое происходит на остановке с Required-Stop и Should-Stop.

SYSTEMD:

команда для вывода списка всех служб

systemctl list-unit-files

который будет выплюнуть много информации. Выбрать все услуги включено,Я.е, которые запускаются при загрузке, просто grep вышеуказанную команду следующим образом:

 systemctl list-unit-files | grep enabled 

Я предпочитаю эту команду systemctl список единиц: разница в том, что это будет отображать только услуги ваша ОС имеет в памяти = ОС думает, что это нужно), в то время как systemctl список-unit-files появится все установленных служб, в том числе маскарад (то есть те, которые не должны запускаться, даже вручную), и те которые ей будут не активировать, которые называются static. Другими словами, команда, которую я предложил, является более полной, чем один листинг только активный услуги.

NB: systemd сильно отличается от предыдущих систем инициализации. В частности, у него нет выполнения, а цели. выполнения все еще существует для причин совместимости, и может смотрите как конкретные цели, перечисляя все доступные цели через

systemctl list-unit-files --type=target

в то время как вы можете видеть вашу текущую цель с помощью

$ systemctl get-default
  graphical.target

подробнее об этом вы можете прочитать DigitalOceans отличная вводная страница.

20
отвечен MariusMatutiae 2022-12-01 08:21

для простого управления Службы запуска на Raspberry Pi я рекомендую tool rcconf. Это позволяет легко включать/выключать сервисы в /etc/init.d/. Вы также можете увидеть, если они включены и будут работать при запуске.

установить средство

sudo apt-get install rcconf

и очень прост в использовании с текстом UI

sudo rcconf
8
отвечен jjurm 2022-12-01 10:38
sudo nano /etc/rc.local

здесь вы вставляете пакетный файл или команды для запуска при загрузке. Я тоже автоматически запускаю Openvpn при загрузке:)

3
отвечен Hexark 2022-12-01 12:55

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх