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

Вместо всех ручных команд в других ответах я рекомендую инструмент, специально созданный для этой цели: ncdu , установите с менеджер пакетов по вашему выбору.

Это всего лишь небольшая утилита командной строки, поэтому вы сможете установить ее, просто освободив немного места.

Затем просто запустите

$ ncdu /

, чтобы проанализировать всю систему.

См. https://dev.yorhel.nl/ncdu/scr для скриншотов: enter image description here

3
16.05.2017, 10:48
1 ответ

Переименование heartbeat.service в heartbeat@.service помогло.

Ответ был просто на справочной странице systemd.socket (дважды RTFM, если одного недостаточно...):

Для каждого файла сокета должен существовать соответствующий служебный файл, описывающий службу, запускаемую при входящем трафике на сокет (дополнительную информацию о файлах .service см. в systemd.service(5)). Имя модуля .service по умолчанию совпадает с именем модуля .socket, но его можно изменить с помощью параметра Service=, описанного ниже. В зависимости от настройки опции Accept=, описанной ниже, этот юнит .service должен быть назван так же, как юнит .socket, но с заменой суффикса, если он не переопределен с помощью Service=; или это должен быть блок шаблона с таким же названием. Пример: файлу сокета foo.socket требуется соответствующая служба foo.service, если установлено значение Accept=false. Если установлено значение Accept=true, должен существовать файл шаблона службы foo@.service, из которого службы создаются для каждого входящего соединения.

Следовательно, сервис не нужно запускать, так как он создается системой systemd и запускается блоком сокетов (который должен запускаться для прослушивания порта tcp для входящих соединений)

Поскольку мы не даем никакого имени для экземпляр, для тех, кому будет любопытно узнать имя экземпляра, заданное %I в сервисе, кажется, что это номер экземпляра минус один (т.е. первый экземпляр имеет идентификатор 0):

[root@Chalet ~]# systemctl status heartbeat.socket
● heartbeat.socket - Socket pour le demon heartbeat
   Loaded: loaded (/etc/systemd/system/heartbeat.socket; disabled; vendor preset: disabled)
   Active: active (listening) since Mon 2017-05-15 15:25:03 CEST; 7h ago
   Listen: 0.0.0.0:6666 (Stream)
 Accepted: 5; Connected: 5

mai 15 15:25:03 Chalet systemd[1]: Listening on Socket pour le demon heartbeat.
[root@Chalet ~]# ncat 127.0.0.1 6666              
what is %I in the service ?
^C
[root@Chalet ~]# systemctl status heartbeat.socket
● heartbeat.socket - Socket pour le demon heartbeat
   Loaded: loaded (/etc/systemd/system/heartbeat.socket; disabled; vendor preset: disabled)
   Active: active (listening) since Mon 2017-05-15 15:25:03 CEST; 7h ago
   Listen: 0.0.0.0:6666 (Stream)
 Accepted: 6; Connected: 6

mai 15 15:25:03 Chalet systemd[1]: Listening on Socket pour le demon heartbeat.
[root@Chalet ~]# journalctl -ra                   
-- Logs begin at Sat 2016-11-19 19:12:18 CET, end at Mon 2017-05-15 23:02:21 CEST. --
mai 15 23:02:21 Chalet root[7224]: heartbeat receveid : what is %I in the service ?
mai 15 23:01:43 Chalet systemd[1]: Started Service de collecte des signaux de vie pour 5 (127.0.0.1:50920).
4
27.01.2020, 21:21

Теги

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