add new
parent
ebf7fb7f04
commit
fdaec73179
|
|
@ -72,3 +72,192 @@ SystemD был создан для централизации линукса, и
|
|||
|
||||
Итак, вернемся к systemd.
|
||||
|
||||
# Анализ ресурсов системы
|
||||
|
||||
Для анализа системы существует утилита **systemd-analyze**.
|
||||
Итак, если вы запустите ее, то вы увидите следующее:
|
||||
|
||||

|
||||
|
||||
Как мы видим, за 7 секунд загрузилось ядро а за 11 секунд — пользовательское пространство. Всего система загрузилась за 18.5 секунд.
|
||||
|
||||
Если вам этого недостаточно, то можно использовать команду systemd-analyze blame, которая показывает также время запуска сервисов:
|
||||
|
||||
```bash
|
||||
$ systemd-analyze blame
|
||||
3.869s dev-sda2.device
|
||||
2.288s NetworkManager.service
|
||||
1.606s user@1000.service
|
||||
1.467s systemd-tmpfiles-setup-dev-early.service
|
||||
1.445s upower.service
|
||||
1.215s systemd-udev-trigger.service
|
||||
996ms systemd-journal-flush.service
|
||||
996ms systemd-journald.service
|
||||
919ms systemd-rfkill.service
|
||||
900ms iio-sensor-proxy.service
|
||||
769ms systemd-tmpfiles-setup.service
|
||||
653ms systemd-logind.service
|
||||
546ms accounts-daemon.service
|
||||
518ms polkit.service
|
||||
459ms systemd-udevd.service
|
||||
445ms systemd-tmpfiles-clean.service
|
||||
425ms systemd-userdbd.service
|
||||
395ms udisks2.service
|
||||
384ms systemd-timesyncd.service
|
||||
# ...
|
||||
```
|
||||
|
||||
Здесь мы можем увидеть каждый сервис, от Network Manager до демона логина. Это бывает очень полезно при оптимизации системы.
|
||||
|
||||
Затем мы также можем просмотреть дерево time-critical цепи для конкретной утилиты или вывести список указанных утилит с подкомандой critical-chain:
|
||||
```bash
|
||||
$ systemd-analyze critical-chain
|
||||
The time when unit became active or started is printed after the @ character.
|
||||
The time the unit took to start is printed after the + character.
|
||||
|
||||
graphical.target @11.201s
|
||||
└─multi-user.target @10.795s
|
||||
└─systemd-user-sessions.service @10.647s +131ms
|
||||
└─network.target @10.613s
|
||||
└─NetworkManager.service @8.317s +2.288s
|
||||
└─basic.target @8.189s
|
||||
└─dbus-broker.service @7.896s +269ms
|
||||
└─dbus.socket @7.867s
|
||||
└─sysinit.target @7.799s
|
||||
└─systemd-timesyncd.service @7.414s +384ms
|
||||
└─systemd-tmpfiles-setup.service @6.604s +769ms
|
||||
└─local-fs.target @6.553s
|
||||
└─boot.mount @6.317s +233ms
|
||||
└─dev-sda1.device @6.291s
|
||||
```
|
||||
|
||||
Наконец, давайте рассмотрим еще одну важную подкоманду, которая позволяет создавать графически (svg-формат) детализированные системные службы, которые были запущены.
|
||||
```bash
|
||||
$ systemd-analyze plot " boot_analysis.svg
|
||||
```
|
||||
|
||||
Также можно использовать **systemd-analyze** на удаленном сервере при помощи ssh:
|
||||
```bash
|
||||
systemd-analyze time -H "username"@"host"
|
||||
systemd-analyze blame -H "username"@"host"
|
||||
systemd-analyze critical-chain -H "username"@"host"
|
||||
```
|
||||
# systemd-ac-power
|
||||
Утилита, для того чтобы узнать, подключены ли мы к внешнему источнику питания.
|
||||
```bash
|
||||
$ systemd-ac-power -v # получаем состояние батареи (подключена ли к источнику питания)
|
||||
yes
|
||||
$ systemd-ac-power -v --low # разряжена ли батарея
|
||||
no
|
||||
```
|
||||
# systemd-ask-password
|
||||
Системная утилита для запрашивания пароля через TTY или UI.
|
||||
```bash
|
||||
systemd-ask-password [OPTIONS...] MESSAGE
|
||||
|
||||
Query the user for a system passphrase, via the TTY or a UI agent.
|
||||
|
||||
-h --help Show this help
|
||||
--icon=NAME Icon name
|
||||
--id=ID Query identifier (e.g. cryptsetup:/dev/sda5)
|
||||
--keyname=NAME Kernel key name for caching passwords (e.g. cryptsetup)
|
||||
--credential=NAME
|
||||
Credential name for ImportCredential=, LoadCredential= or
|
||||
SetCredential= credentials
|
||||
--timeout=SEC Timeout in seconds
|
||||
--echo=yes|no|masked
|
||||
Control whether to show password while typing (echo)
|
||||
-e --echo Equivalent to --echo=yes
|
||||
--emoji=yes|no|auto
|
||||
Show a lock and key emoji
|
||||
--no-tty Ask question via agent even on TTY
|
||||
--accept-cached Accept cached passwords
|
||||
--multiple List multiple passwords if available
|
||||
--no-output Do not print password to standard output
|
||||
-n Do not suffix password written to standard output with
|
||||
newline
|
||||
|
||||
See the systemd-ask-password(1) man page for details.
|
||||
```
|
||||
# systemd-cat
|
||||
Утилита для выполнения процессов с выводом stdout/stderr, подключенный к системному журналу.
|
||||
```bash
|
||||
systemd-cat [OPTIONS...] COMMAND ...
|
||||
|
||||
Execute process with stdout/stderr connected to the journal.
|
||||
|
||||
-h --help Show this help
|
||||
--version Show package version
|
||||
-t --identifier=STRING Set syslog identifier
|
||||
-p --priority=PRIORITY Set priority value (0..7)
|
||||
--stderr-priority=PRIORITY Set priority value (0..7) used for stderr
|
||||
--level-prefix=BOOL Control whether level prefix shall be parsed
|
||||
|
||||
See the systemd-cat(1) man page for details.
|
||||
```
|
||||
# systemd-resolve
|
||||
Специальная команда, которая отвечает за файл /etc/resolv.conf. Разрешает доменные имена, адреса и т.д. При неправильном конфиге resolv«а вы не сможете работать в интернете.
|
||||
```bash
|
||||
systemd-resolve [OPTIONS...] HOSTNAME|ADDRESS...
|
||||
systemd-resolve [OPTIONS...] --service [[NAME] TYPE] DOMAIN
|
||||
systemd-resolve [OPTIONS...] --openpgp EMAIL@DOMAIN...
|
||||
systemd-resolve [OPTIONS...] --statistics
|
||||
systemd-resolve [OPTIONS...] --reset-statistics
|
||||
|
||||
Resolve domain names, IPv4 and IPv6 addresses, DNS records, and services.
|
||||
|
||||
-h --help Show this help
|
||||
--version Show package version
|
||||
--no-pager Do not pipe output into a pager
|
||||
-4 Resolve IPv4 addresses
|
||||
-6 Resolve IPv6 addresses
|
||||
-i --interface=INTERFACE Look on interface
|
||||
-p --protocol=PROTO|help Look via protocol
|
||||
-t --type=TYPE|help Query RR with DNS type
|
||||
-c --class=CLASS|help Query RR with DNS class
|
||||
--service Resolve service (SRV)
|
||||
--service-address=BOOL Resolve address for services (default: yes)
|
||||
--service-txt=BOOL Resolve TXT records for services (default: yes)
|
||||
--openpgp Query OpenPGP public key
|
||||
--tlsa Query TLS public key
|
||||
--cname=BOOL Follow CNAME redirects (default: yes)
|
||||
--search=BOOL Use search domains for single-label names
|
||||
(default: yes)
|
||||
--raw[=payload|packet] Dump the answer as binary data
|
||||
--legend=BOOL Print headers and additional info (default: yes)
|
||||
--statistics Show resolver statistics
|
||||
--reset-statistics Reset resolver statistics
|
||||
--status Show link and server status
|
||||
--flush-caches Flush all local DNS caches
|
||||
--reset-server-features
|
||||
Forget learnt DNS server feature levels
|
||||
--set-dns=SERVER Set per-interface DNS server address
|
||||
--set-domain=DOMAIN Set per-interface search domain
|
||||
--set-llmnr=MODE Set per-interface LLMNR mode
|
||||
--set-mdns=MODE Set per-interface MulticastDNS mode
|
||||
--set-dnsovertls=MODE Set per-interface DNS-over-TLS mode
|
||||
--set-dnssec=MODE Set per-interface DNSSEC mode
|
||||
--set-nta=DOMAIN Set per-interface DNSSEC NTA
|
||||
--revert Revert per-interface configuration
|
||||
|
||||
See the resolvectl(1) man page for details.
|
||||
```
|
||||
# Другие systemd-команды
|
||||
Другие команды и ссылки на команды вы можете видеть ниже. Для просмотра справки запустите с флагом --help или посмотрите страницу мануалов (man).
|
||||
|
||||

|
||||
|
||||
# Компоненты systemD
|
||||
systemd — набор базовых компонентов Linux-системы. Представляет собой менеджер системы и служб, который выполняется как процесс с PID 1 и запускает остальную часть системы. Основная особенность — интенсивное распараллеливание запуска служб в процессе загрузки системы, что позволяет существенно ускорить запуск операционной системы.
|
||||
|
||||
А также systemD очень разросся — он отвечает за несколько базовых вещей — интернет, ядро, журналирование и многое другое.
|
||||
|
||||

|
||||
|
||||
Systemd приносит концепцию юнитов systemd. Юниты — это некая абстракция, она содержит имя, зависимости, команды, описание, права. Юниты представлены конфигурационными файлами, размещенными в одной из директорий:
|
||||
|
||||
* `/usr/lib/systemd/system/` – юниты из установленных пакетов RPM.
|
||||
* `/run/systemd/system/` — юниты, созданные в рантайме. Этот каталог приоритетнее каталога с установленными юнитами из пакетов.
|
||||
* `/etc/systemd/system/` — юниты, созданные и управляемые системным администратором. Этот каталог приоритетнее каталога юнитов, созданных в рантайме.
|
||||
|
||||
Конфигурационные файлы похожи на ini-файлы:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 60 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 87 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 64 KiB |
Loading…
Reference in New Issue