add new
parent
ebf7fb7f04
commit
fdaec73179
|
|
@ -72,3 +72,192 @@ SystemD был создан для централизации линукса, и
|
||||||
|
|
||||||
Итак, вернемся к 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