<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.webko.net.ua/index.php?action=history&amp;feed=atom&amp;title=Systemd</id>
	<title>Systemd - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.webko.net.ua/index.php?action=history&amp;feed=atom&amp;title=Systemd"/>
	<link rel="alternate" type="text/html" href="https://wiki.webko.net.ua/index.php?title=Systemd&amp;action=history"/>
	<updated>2026-05-21T02:36:49Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.webko.net.ua/index.php?title=Systemd&amp;diff=145&amp;oldid=prev</id>
		<title>Sol в 19:58, 21 апреля 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.webko.net.ua/index.php?title=Systemd&amp;diff=145&amp;oldid=prev"/>
		<updated>2015-04-21T19:58:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия 19:58, 21 апреля 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Systemd – менеджер системы и сервисов в операционной системе Linux. При разработке eго стремились спроектировать обратно совместимым со скриптами инициализации SysV init и предоставить полезные функции, такие, как параллельный запуск системных сервисов во время загрузки, активацию демонов по требованию, поддержку снепшотов состояния системы и логику управления сервисами, основанную на зависимостях. В CentOS 7 systemd заменяет Upstart как систему инициализации по умолчанию.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Systemd – менеджер системы и сервисов в операционной системе Linux. При разработке eго стремились спроектировать обратно совместимым со скриптами инициализации SysV init и предоставить полезные функции, такие, как параллельный запуск системных сервисов во время загрузки, активацию демонов по требованию, поддержку снепшотов состояния системы и логику управления сервисами, основанную на зависимостях. В CentOS 7 systemd заменяет Upstart как систему инициализации по умолчанию.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Файл:Systemd.png|&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;200px&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Файл:Systemd.png|&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;300px&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.webko.net.ua/index.php?title=Systemd&amp;diff=144&amp;oldid=prev</id>
		<title>Sol: Новая страница: «Systemd – менеджер системы и сервисов в операционной системе Linux. При разработке eго стремил…»</title>
		<link rel="alternate" type="text/html" href="https://wiki.webko.net.ua/index.php?title=Systemd&amp;diff=144&amp;oldid=prev"/>
		<updated>2015-04-21T19:57:47Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «Systemd – менеджер системы и сервисов в операционной системе Linux. При разработке eго стремил…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Systemd – менеджер системы и сервисов в операционной системе Linux. При разработке eго стремились спроектировать обратно совместимым со скриптами инициализации SysV init и предоставить полезные функции, такие, как параллельный запуск системных сервисов во время загрузки, активацию демонов по требованию, поддержку снепшотов состояния системы и логику управления сервисами, основанную на зависимостях. В CentOS 7 systemd заменяет Upstart как систему инициализации по умолчанию.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Systemd.png|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Systemd приносит концепцию юнитов systemd. Юниты представлены конфигурационными файлами, размещенными в одной из директорий:&lt;br /&gt;
&lt;br /&gt;
''/usr/lib/systemd/system/'' – юниты из установленных пакетов RPM.&lt;br /&gt;
&lt;br /&gt;
''/run/systemd/system/'' — юниты, созданные в рантайме. Этот каталог приоритетнее каталога с установленными юнитами из пакетов.&lt;br /&gt;
&lt;br /&gt;
''/etc/systemd/system/'' — юниты, созданные и управляемые системным администратором. Этот каталог приоритетнее каталога юнитов, созданных в рантайме.&lt;br /&gt;
&lt;br /&gt;
Юниты содержат информацию о системных сервисах, прослушиваемых сокетах, сохраненных снапшотах состояний системы и других обьектах, относящихся к системе инициализации.&lt;br /&gt;
&lt;br /&gt;
Типы юнитов systemd:&lt;br /&gt;
''.service'' – системный сервис&lt;br /&gt;
&lt;br /&gt;
''.target'' — группа юнитов systemd&lt;br /&gt;
&lt;br /&gt;
''.automount'' – точка автомонтирования файловой системы&lt;br /&gt;
&lt;br /&gt;
''.device'' – файл устройства, распознанного ядром&lt;br /&gt;
&lt;br /&gt;
''.mount'' – точка монтирования файловой системы&lt;br /&gt;
&lt;br /&gt;
''.path'' – файл или директория в файловой системе&lt;br /&gt;
&lt;br /&gt;
''.scope'' – процесс, созданный извне&lt;br /&gt;
&lt;br /&gt;
''.slice'' – группа иерархически организованных юнитов, управляющая системными процессами&lt;br /&gt;
&lt;br /&gt;
''.snapshot'' – сохраненное состояние менеджера systemd&lt;br /&gt;
&lt;br /&gt;
''.socket'' – сокет межпроцессного взаимодействия&lt;br /&gt;
&lt;br /&gt;
''.swap'' – Свап-устройство или свап-файл (файл подкачки)&lt;br /&gt;
&lt;br /&gt;
''.timer'' – таймер systemd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Основные функции systemd в CentOS 7 ==&lt;br /&gt;
&lt;br /&gt;
'''Активация, основанная на сокетах.''' Во время загрузки systemd прослушивает сокеты для всех системных сервисов, поддерживает этот тип активации и передает сокеты этим сервисам сразу после старта сервисов. Это позволяет systemd не только запускать сервисы параллельно, но также дает возможность перезапускать сервисы без потери любых отправленных им сообщений, пока сервисы были недоступны. Соответствующий сокет остается доступным и все сообщения выстраиваются в очередь.&lt;br /&gt;
&lt;br /&gt;
'''Активация, основанная на D-Bus.''' Системные сервисы, использующие D–Bus для межпроцессного взаимодействия, могут быть запущены по требованию, когда клиентское приложение пытается связаться с ними.&lt;br /&gt;
&lt;br /&gt;
'''Активация, основанная на девайсах.''' Системные сервисы, поддерживающие активацию, основанную на девайсах, могут быть запущены, когда определенный тип оборудования подключается или становится доступным.&lt;br /&gt;
&lt;br /&gt;
'''Активация, основанная на путях.''' Системные сервисы могут поддерживать этот вид активации, если изменяется состояние папки или директории.&lt;br /&gt;
&lt;br /&gt;
'''Снепшоты системных состояний.''' Система может сохранять состояние всех юнитов и восстанавливать предыдущее состояние системы.&lt;br /&gt;
&lt;br /&gt;
'''Управление точками монтирования и автомонтирования.''' Systemd отслеживает и управляет точками монтирования и автомонтирования.&lt;br /&gt;
&lt;br /&gt;
'''Агрессивная параллелизация Systemd''' запускает системные сервисы параллельно из-за использования активации, основанной на сокетах. В комбинации с сервисами, поддерживающими активацию по требованию, параллельная активация значительно уменьшает время загрузки системы.&lt;br /&gt;
&lt;br /&gt;
'''Транзакционная логика активации юнитов.''' До активации и деактивации юнитов systemd вычисляет их зависимости, создает временную транзакцию и проверяет целостность этой транзакции. Если транзакция нецелостная, systemd автоматически пытается исправить ее и удалить не требующиеся задания из нее до формирования сообщения об ошибке.&lt;br /&gt;
&lt;br /&gt;
'''Обратная совместимость с инициализацией SysV.''' SystemD полностью поддерживает скрипты инициализации SysV, как описано в спецификации Linux Standard Base (LSB), что упрощает переход на systemd.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Управление сервисами ==&lt;br /&gt;
&lt;br /&gt;
В предыдущих версиях CentOS использовалась SysV или Upstart. Скрипты инициализации располагались в директории ''/etc/rc.d/init.d/''. Такие скрипты обычно писались на Bash и позволяли администратору управлять состоянием сервисов и демонов. В CentOS 7 скрипты инициализации были заменены сервисными юнитами.&lt;br /&gt;
&lt;br /&gt;
По способу использования сервисные юниты '''.service''' напоминают скрипты инициализации. Для просмотра, старта, остановки, перезагрузки, включения или выключения системных сервисов используется команда '''systemctl'''. Команды '''service''' и '''chkconfig''' по-прежнему включены в систему, но только по соображениям совместимости.&lt;br /&gt;
&lt;br /&gt;
[[Файл:517fc9.png]]&lt;br /&gt;
При использовании systemctl указывать расширение файла не обязательно.&lt;br /&gt;
&lt;br /&gt;
Ниже представлены основные команды systemctl:&lt;br /&gt;
 systemctl start name.service – запуск сервиса.&lt;br /&gt;
 systemctl stop name.service — остановка сервиса&lt;br /&gt;
 systemctl restart name.service — перезапуск сервиса&lt;br /&gt;
 systemctl try-restart name.service — перезапуск сервиса только, если он запущен&lt;br /&gt;
 systemctl reload name.service — перезагрузка конфигурации сервиса&lt;br /&gt;
 systemctl status name.service — проверка, запущен ли сервис с детальным выводом состояния сервиса&lt;br /&gt;
 systemctl is-active name.service — проверка, запущен ли сервис с простым ответом: active или inactive&lt;br /&gt;
 systemctl list-units --type service --all – отображение статуса всех сервисов&lt;br /&gt;
 systemctl enable name.service – активирует сервис (позволяет стартовать во время запуска системы)&lt;br /&gt;
 systemctl disable name.service – деактивирует сервис&lt;br /&gt;
 systemctl reenable name.service – деактивирует сервис и сразу активирует его&lt;br /&gt;
 systemctl is–enabled name.service – проверяет, активирован ли сервис&lt;br /&gt;
 systemctl list-unit-files --type service – отображает все сервисы и проверяет, какие из них активированы&lt;br /&gt;
 systemctl mask name.service – заменяет файл сервиса симлинком на /dev/null, делая юнит недоступным для systemd&lt;br /&gt;
 systemctl unmask name.service – возвращает файл сервиса, делая юнит доступным для systemd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работаем с целями (targets) Systemd ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Предыдущие версии CentOS с SysV init или Upstart включали предопределенный набор уровней запуска (runlevels), которые представляли специфичные режимы для операций, пронумерованные от 0 до 6. В CentOS 7 концепция уровней запуска была заменена целями systemd.&lt;br /&gt;
&lt;br /&gt;
Файлы целей '''systemd .target''' предназначены для группировки вместе других юнитов '''systemd''' через цепочку зависимостей. Например юнит '''graphical.target''', использующийся для старта графической сессии, запускает системные сервисы '''GNOME Display Manager (gdm.service)''' и '''Accounts Service (accounts–daemon.service)''' и активирует '''multi–user.target'''. В свою очередь '''multi–user.target''' запускает другие системные сервисы, такие как '''Network Manager (NetworkManager.service)''' или '''D-Bus (dbus.service)''' и активирует другие целевые юниты '''basic.target'''. &lt;br /&gt;
&lt;br /&gt;
В CentOS 7 присутствуют предопределенные цели, похожие на стандартный набор уровней запуска. По соображениям совместимости они также имеют алиасы на эти цели, которые напрямую отображаются в уровнях запуска SysV.&lt;br /&gt;
&lt;br /&gt;
 poweroff.target (runlevel0.target) – завершение работы и отключение системы&lt;br /&gt;
 rescue.target (runlevel1.target) – настройка оболочки восстановления&lt;br /&gt;
 multi–user.target (runlevel2.target, runlevel3.target, runlevel4.target) – настройка неграфической многопользовательской системы&lt;br /&gt;
 graphical.target (runlevel5.target) – настройка графической многопользовательской системы&lt;br /&gt;
 reboot.target (runlevel6.target) – выключение и перезагрузка системы&lt;br /&gt;
&lt;br /&gt;
Команды '''runlevel''' и '''telinit''' по-прежнему доступны, но оставлены в системе по соображениям совместимости. Рекомендуется использовать systemctl для изменения или настройки системных целей.&lt;br /&gt;
&lt;br /&gt;
Для определения, какой целевой юнит используется по умолчанию, полезна следующая команда: &lt;br /&gt;
 systemctl get–default.&lt;br /&gt;
Для просмотра всех загруженных целевых юнитов воспользуйтесь командой &lt;br /&gt;
 systemctl list-units --type target&lt;br /&gt;
а для просмотра вообще всех целевых юнитов командой: &lt;br /&gt;
 systemctl list-units --type target --all.&lt;br /&gt;
Для изменения цели по умолчанию поможет команда &lt;br /&gt;
systemctl set-default name.target. &lt;br /&gt;
Для изменения текущей цели: &lt;br /&gt;
systemctl isolate name.target. &lt;br /&gt;
Команда запустит целевой юнит и все его зависимости и немедленно остановит все остальные.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Выключение и перезагрузка системы ==&lt;br /&gt;
&lt;br /&gt;
В CentOS 7 systemctl заменяет значительное количество команд управления питанием. Прежние команды сохранены для совместимости, но рекомандуется использовать systemctl:&lt;br /&gt;
 systemctl halt – останавливает систему&lt;br /&gt;
 systemctl poweroff – выключает систему&lt;br /&gt;
 systemctl reboot – перезагружает систему&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Управление systemd на удаленной машине ==&lt;br /&gt;
&lt;br /&gt;
Systemd позволяет управлять удаленной машиной по SSH. Для управления используйте команду:&lt;br /&gt;
 systemctl --host user_name@host_name command&lt;br /&gt;
где ''user_name'' – имя пользователя, ''host_name'' – имя хоста, которым осуществляется удаленное управление, а ''command'' – выполняемая команда systemd.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Типичный systemd .service ==&lt;br /&gt;
&lt;br /&gt;
Этот раздел поможет вам, если вам необходимо быстро сделать поддержку управления сервисом из systemd. Подробная информация о всех параметрах файла .service есть в соответствующем разделе документации по systemd.&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Daemon to detect crashing apps&lt;br /&gt;
 After=syslog.target&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 ExecStart=/usr/sbin/abrtd&lt;br /&gt;
 Type=forking&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Давайте посмотрим на секцию '''[Unit]'''. Она содержит общую информацию о сервисе. Такая секция есть не только в сервис-юнитах, но и в других юнитах (например при управлении устройствами, точками монтирования и т.д.). В нашем примере мы даем описание сервиса и указываем на то, что демон должен быть запущен после Syslog.&lt;br /&gt;
&lt;br /&gt;
В следующей секции '''[Service]''' непосредственно содержится информация о нашем сервисе. Используемый параметр ExecStart указывает на исполняемый файл нашего сервиса. В '''Type''' мы указываем, как сервис уведомляет systemd об окончании запуска. &lt;br /&gt;
&lt;br /&gt;
Финальная секция '''[Install]''' содержит информацию о цели, в которой сервис должен стартовать. В данном случае мы говорим, что сервис должен быть запущен, когда будет активирована цель '''multi–user.target'''.&lt;br /&gt;
&lt;br /&gt;
Это минимальный работающий файл сервиса systemd. Написав свой, для тестирования скопируйте его в /etc/systemd/system/имя_сервиса.service. Выполните команды systemctl daemon-reload. Systemd узнает о сервисе и вы сможете его запустить.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Linux]]&lt;/div&gt;</summary>
		<author><name>Sol</name></author>
	</entry>
</feed>