<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.ramba-art.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%B5%D0%BC_Unit_%D0%B2_Linux</id>
	<title>Создаем Unit в Linux - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ramba-art.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%B5%D0%BC_Unit_%D0%B2_Linux"/>
	<link rel="alternate" type="text/html" href="https://wiki.ramba-art.ru/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%B5%D0%BC_Unit_%D0%B2_Linux&amp;action=history"/>
	<updated>2026-08-24T01:16:07Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.39.2</generator>
	<entry>
		<id>https://wiki.ramba-art.ru/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%B5%D0%BC_Unit_%D0%B2_Linux&amp;diff=30&amp;oldid=prev</id>
		<title>Admin: Новая страница: «Что такое systemd?  systemd — это набор базовых строительных блоков для системы Linux. Он предоставляет диспетчер систем и служб, который работает как PID 1 и запускает остальную часть системы. systemd предоставляет агрессивные возможности распараллеливания, исполь...»</title>
		<link rel="alternate" type="text/html" href="https://wiki.ramba-art.ru/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%B5%D0%BC_Unit_%D0%B2_Linux&amp;diff=30&amp;oldid=prev"/>
		<updated>2023-03-25T14:44:45Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «Что такое systemd?  systemd — это набор базовых строительных блоков для системы Linux. Он предоставляет диспетчер систем и служб, который работает как PID 1 и запускает остальную часть системы. systemd предоставляет агрессивные возможности распараллеливания, исполь...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Что такое systemd?&lt;br /&gt;
&lt;br /&gt;
systemd — это набор базовых строительных блоков для системы Linux. Он предоставляет диспетчер систем и служб, который работает как PID 1 и запускает остальную часть системы. systemd предоставляет агрессивные возможности распараллеливания, использует активацию сокетов и D-Bus для запуска служб. Предлагает запуск демонов по требованию, отслеживает процессы, использующие группы управления Linux. Поддерживает точки монтирования и автоматического монтирования. Реализует сложную логику управления службами на основе транзакционных зависимостей. systemd поддерживает сценарии SysV и LSB init и работает как замена для sysvinit. Другие части включают демон ведения журнала, утилиты для управления базовой конфигурацией системы. В него входит: имя хоста, дата, локаль, ведение списка зарегистрированных пользователей и запущенных контейнеров. А также виртуальных машин, системные учетные записи, каталоги времени выполнения и параметры. Не забудем о демонах управления простой конфигурацией сети, синхронизацией сетевого времени, пересылкой журналов и разрешением имен.&lt;br /&gt;
&lt;br /&gt;
unitd работает с сервисами описанными в своей конфигурации. Основой для создания сервиса служит юнит (unit) — это текстовый файл с описанием на подобии ini файла в системе windows. Конфигурационный файл состоит из секций. Внутри каждой секции указываются необходимые параметры. Обязательными во всех юнитах являются две секции, остальные используются в зависимости от типа юнита.&lt;br /&gt;
&lt;br /&gt;
Приступим&lt;br /&gt;
&lt;br /&gt;
например в /opt/telegram/start/ создаем фаил имя_програмы.sh&lt;br /&gt;
&lt;br /&gt;
в нем пишем:&lt;br /&gt;
&lt;br /&gt;
  #!/bin/bash&lt;br /&gt;
  /usr/bin/python3 /opt/telegram/папка_с_pyton_програмой/main.py&lt;br /&gt;
Создаем фал в сисди&lt;br /&gt;
&lt;br /&gt;
nano /etc/systemd/system/имя_нашей_программы.service&lt;br /&gt;
&lt;br /&gt;
Вставляем следующее:&lt;br /&gt;
&lt;br /&gt;
Description= описывавшем нашу программу в пару слов&lt;br /&gt;
&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
  [Service]&lt;br /&gt;
  User=имя_пользователя_от_которого_будет_запускаться_программа&lt;br /&gt;
  Nice=1&lt;br /&gt;
  KillMode=none&lt;br /&gt;
  SuccessExitStatus=0 1&lt;br /&gt;
  ProtectHome=true&lt;br /&gt;
  ProtectSystem=full&lt;br /&gt;
  PrivateDevices=true&lt;br /&gt;
  NoNewPrivileges=true&lt;br /&gt;
  WorkingDirectory=/opt/telegram/папка_с_pyton_програмой&lt;br /&gt;
  ExecStart=/opt/telegram/start/имя_програмы.sh&lt;br /&gt;
  [Install]&lt;br /&gt;
  WantedBy=multi-user.target&lt;br /&gt;
далее:&lt;br /&gt;
&lt;br /&gt;
systemctl start имя_нашей_программы.service&lt;br /&gt;
&lt;br /&gt;
systemctl status имя_нашей_программы.service&lt;br /&gt;
&lt;br /&gt;
если всё oK, то:&lt;br /&gt;
&lt;br /&gt;
systemctl enable имя_нашей_программы.service - это будет запускать нашу программу при старте системы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Полезное:&lt;br /&gt;
&lt;br /&gt;
Каталоги хранения юнитов&lt;br /&gt;
&lt;br /&gt;
  /usr/lib/systemd/system — юниты поставляемые вместе с системой и устанавливаемыми приложениями&lt;br /&gt;
  /run/systemd/system — юниты созданные динамически (в рантайме)&lt;br /&gt;
  /etc/systemd/system — юниты системного администратора (тут и будем хранить наши)&lt;br /&gt;
Юниты systemd&lt;br /&gt;
&lt;br /&gt;
  target — группирует модули&lt;br /&gt;
  service — отвечает за запуск сервисов (служб) и поддерживает вызов интерпретаторов для исполнения пользовательских скриптов&lt;br /&gt;
  mount — занимается монтированием файловых систем&lt;br /&gt;
  automount — автомонтирование файловых систем, используется при обращении к точке монтирования;&lt;br /&gt;
  swap — отвечает за подключение файла подкачки&lt;br /&gt;
  timer — запускает модули по расписанию, аналог cron&lt;br /&gt;
  socket — запуск модуля при подключению к сокету&lt;br /&gt;
  slice — группировка других модулей в контейнер (дерево) cgroups&lt;br /&gt;
  device — использует реакцию на подключение какого-либо устройства&lt;br /&gt;
  path — запуск модуля по событию доступа по конкретному пути в файловой системе&lt;br /&gt;
  [Unit]&lt;br /&gt;
  Description — описание юнита для большего понимания&lt;br /&gt;
  Documentation — документация по процессу sshd&lt;br /&gt;
  After — зависимость, т.е. в данном случае запускать юнит только после запуска network.target и sshd-keygen.target&lt;br /&gt;
  Wants — еще одна зависимость, означает желательно. В примере Wants=sshd-keygen.target, т.е. желательно чтобы было запущено sshd-keygen.target . Желательно но не обязательно.&lt;br /&gt;
  [Service]&lt;br /&gt;
  Type — типы запуска служб. Могут быть&lt;br /&gt;
  simple (по умолчанию) — происходит незамедлительный запуск этой службы, с учетом того что процесс не разветвляется (fork). Не используйте simple если пользуетесь очередностью запуска. Одно исключение это активация сокета.&lt;br /&gt;
  forking — служба считается запущенной после того, после разветвления процесса с завершением родительского процесса. Используется для запуска классических демонов исключая случаи, когда в таком поведении процесса нет необходимости. Также желательно указать PIDFile=, чтобы systemd мог отслеживать основной процесс.&lt;br /&gt;
  oneshot — удобен для скриптов, которые выполняют одно задание и завершаются. При необходимости можно задать параметр RemainAfterExit=yes, чтобы systemd считал процесс активным даже после его завершения.&lt;br /&gt;
  notify — идентичен параметру simple, но с оговоркой, что демон пошлет systemd сигнал о своей готовности. Эталонная реализация данного уведомления представлена в libsystemd-daemon.so.&lt;br /&gt;
  &lt;br /&gt;
  dbus — служба считается находящейся в состоянии готовности, когда указанный параметр BusName появляется в системной шине DBus.&lt;br /&gt;
  idle — откладывается выполнение двоичного файла службы до момента выполнения всех остальных задач. В остальном поведение аналогично simple.&lt;br /&gt;
Далее в разделе Service&lt;br /&gt;
&lt;br /&gt;
  EnvironmentFile — файлы переменного окружения&lt;br /&gt;
  ExecStart — полный путь к исполняемому файлу программы с параметрами запуска&lt;br /&gt;
  ExecReload — полный пусть к исполняемому файлу программы с параметрами перезапуска программы&lt;br /&gt;
  KillMode — указывается как будет завершен процесс. В данному случае параметр process говорит о том что будет закрыт только главный процесс&lt;br /&gt;
  Restart — перезагрузка процесса, параметр on-failure указывает на автоматическую перезагрузку в случает отказа процесса&lt;br /&gt;
  RestartSec — время ожидания через которое процесс должен перезагрузиться&lt;br /&gt;
  [Install]&lt;br /&gt;
  WantedBy — указывает на каком урове запуска стартует сервис, параметр multi-user.target указывает на запуск в многопользовательском режиме без графики&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>