Как создавать пользовательские службы и управлять ими в Linux

Kak Sozdavat Pol Zovatel Skie Sluzby I Upravlat Imi V Linux



Обычный пользователь Linux может создать собственную службу systemd. Службы systemd в основном управляются системными администраторами с помощью команды systemctl. Эту же команду можно использовать и для управления службами, специфичными для пользователя; все, что вам нужно, это -пользователь флаг.

В этом руководстве я расскажу, как создать пользовательский сервис в Linux и как управлять им с помощью systemctl.

Причина наличия обычного пользовательского сервиса

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







Как создать службу обычного пользователя

Пользовательские службы в Linux размещаются в папке ~/.config/systemd/пользователь каталог. Если этого каталога нет, то его можно создать.

мкдир -п ~ / .config / системный / пользователь

-п Флаг используется для создания родительского каталога, если это необходимо. ~ указывает домашний каталог локального пользователя и эквивалентен /домашняя/пользователь а точка перед файлом конфигурации делает его скрытым. Давайте создадим простой файл сценария bash, который будет записывать использование памяти в текст каждые 30 минут. Я создаю скрипт с именем скрипт.sh .

#! /бин/баш

пока истинный

делать

бесплатно >> / дом / пользователь / мойфайл.txt

спать 1800 г.

сделанный

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

Теперь давайте создадим сервис, который будет выполнять приведенный выше скрипт в фоновом режиме. Запустите любой текстовый редактор, например Nano или Vim, и вставьте в него приведенные ниже строки.

[ Единица ]

Описание = Мой сервис

[ Услуга ]

Тип = простой

ЭксекСтарт '=' / мусорное ведро / бить / дом / пользователь / скрипт.sh

Перезапуск = при отказе

[ Установить ]

Разыскивается =default.target

В разделе [Unit] Описание Директива просто содержит имя службы. Обратите внимание, что оно не должно содержать более 80 символов.

Раздел [Сервис] содержит три важные директивы. Во-первых, Тип ; который простой , затем ЭксекСтарт содержащий исполняемый файл нашего пользовательского скрипта. Служба перезапустится только в случае сбоя.

Раздел [Установить] содержит Разыскивается директива, которая default.target , подразумевая, что служба будет включена в состоянии системы, когда она будет достигнута на уровне запуска по умолчанию, которым обычно является multi-user.target илиgraphical.target.

Теперь сохраните файл в папке ~/.config/systemd/пользователь каталог с любым именем; Я называю это мойсервис.сервис .

Как управлять службой обычного пользователя

Для управления обычной пользовательской службой используется команда systemctl с -пользователь флаг. -пользователь Флаг означает, что пользователь обращается к менеджеру службы, а не к системе.

После создания пользовательского служебного файла первым важным шагом является перезагрузка файлов конфигурации systemd.

системаctl --пользователь демон-перезагрузка

Изменения будут применены.

Чтобы узнать, запущена служба или нет, используйте systemctl с параметром -пользователь флаг и опция.

системаctl --пользователь положение дел [ наименование услуги ]

Другие команды для управления обычной пользовательской службой упомянуты ниже:

системаctl --пользователь начинать [ наименование услуги ]

системаctl --пользователь давать возможность [ наименование услуги ]

системаctl --пользователь останавливаться [ наименование услуги ]

системаctl --пользователь запрещать [ наименование услуги ]

системаctl --пользователь перезапуск [ наименование услуги ]

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

Существует множество сервисов, которые создает пользователь, но для их запуска требуется разрешение администратора. Такие сервисы можно создать, добавив Пользователь директиву в раздел [Сервис].

Пользователь Директива может использоваться для упоминания имени пользователя, чьи разрешения необходимы для запуска службы, например администратор . Итак, если обычный пользователь хочет создать службу, требующую прав администратора, то просто добавьте Пользователь = администратор в разделе [Сервис] выполнит эту работу. Однако эта услуга будет оставаться активной, пока активен администратор. Обратите внимание, что администратор не может напрямую управлять этой службой.

Заключение

Обычный пользователь также может создать службу systemd, но ее необходимо поместить в ~/.config/systemd/пользователь каталог. Эта служба работает до тех пор, пока пользователь, создавший ее, вошел в систему. Эти службы также управляются с помощью команды systemctl, но с помощью -пользователь флаг. Это сообщает systemd, что службу вызывает пользователь, а не система. В этом руководстве я создал собственную службу обычных пользователей и упомянул команды systemctl для управления ею. Более того, я также выделил способ создания службы, требующей административных привилегий.