Как можно создать демон с помощью systemd? [закрыто]

Предполагая, что @agc имеет правильно интерпретировал требуемый вывод, можно использовать старый добрый awk .

awk -F, 'NR>1{a[$1]=$4}END{for(x in a){print x","a[x]}}' foo
CZ, -10543
I, 4475
1
10.07.2017, 16:52
2 ответа

systemd не подвох -все. Это не будет решением всех проблем, однако оно даст вам множество инструментов, помогающих решать проблемы. Полезность этих инструментов сводится к тому, насколько хорошо вы можете их использовать.

Давайте посмотрим на очень простой служебный файлcheck-time.service(обратите внимание, что я создал этот служебный файл вручную, используя другие служебные файлы, расположенные в /usr/lib/systemd/system/в качестве ссылок):

[Unit]
Description=Checks the time every second

[Service]
Type=simple
ExecStart=/usr/bin/check-time.py

Служебный файл принадлежит /usr/lib/systemd/system/или /etc/systemd/system/для использования systemd

.

Построчно

[*]Заголовки разделов. Это просто групповые директивы. Вы можете найти ссылки на то, какие директивы где принадлежат, в systemdсправочных страницах:

[Единица измерения] секция

[Сервис] секция

[Установить] раздел

Описание

A free-form string describing the unit. This is intended for use in UIs to show descriptive information along with the unit name. The description should contain a name that means something to the end user. "Apache2 Web Server" is a good example. Bad examples are "high-performance light-weight HTTP server" (too generic) or "Apache2" (too specific and meaningless for people who do not know Apache).

тип

Configures the process start-up type for this service unit. One of simple, forking, oneshot, dbus, notify or idle.

If set to simple (the default if neither Type= nor BusName=, but ExecStart= are specified), it is expected that the process configured with ExecStart= is the main process of the service. In this mode, if the process offers functionality to other processes on the system, its communication channels should be installed before the daemon is started up (e.g. sockets set up by systemd, via socket activation), as systemd will immediately proceed starting follow-up units.

Старт выполнения

Commands with their arguments that are executed when this service is started. The value is split into zero or more command lines according to the rules described below (see section "Command Lines" below).


Резюме

Этот служебный файл просто запускал команду /usr/bin/check-time.pyпри запуске. Если команда завершится, то она будет считаться «мертвой», пока она продолжает работать, она считается «активной».

Насколько полезен этот служебный файл? Ну не очень. Поскольку это единственное, что он делает, это позволяет вам запускать скрипт Python, используя systemctl start check-time.serviceвместо обычного полного пути, однако есть множество дополнительных опций, которые могут быть полезны.


Полезные параметры

WantedBy Если вы хотите, чтобы служба запускалась при загрузке, установите WantedBy=цель по умолчанию.

Перезапуск Определяет, когда systemdследует автоматически перезапускать службу, например, «всегда» или «при -сбое»

Буквально сотни других параметров, включая ограничение использования оборудования, выбор пользователя для выполнения процесса, настройку переменных среды, настройку зависимостей и многое другое. systemdполезен из-за всех дополнительных функций, которые он предоставляет, а не только потому, что он может обертывать вещи.

5
27.01.2020, 23:18

Не знаю, о чем вы спрашиваете. Systemd — это система инициализации, поэтому ее задача — запускать процессы при запуске.

Редактировать :Чтобы просмотреть список служб в системе, запустите:

systemctl list-units --type service
0
27.01.2020, 23:18

Теги

Похожие вопросы