Systemd/User Services/ru: Difference between revisions
Created page with "Systemd/Пользовательские сервисы" |
Updating to match new version of source page |
||
(10 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
{{Systemd/breadcrumb}} | |||
Systemd | |||
Systemd поддерживает запуск отдельного экземпляра systemd для конкретного пользователя, позволяя ему управлять своими собственными службами. | |||
В NixOS пользовательский сервис может быть выражен с помощью {{ic|systemd.user.services.<name>}}, как описано здесь: https://search.nixos.org/options?query=systemd.user.services. | |||
Это может быть полезно, если вы хотите, чтобы пользователь мог запускать, останавливать и перезапускать свой собственный экземпляр службы без необходимости делать его sudoer. | |||
Пример сервиса: | |||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix"> | ||
systemd.user.services.my-cool-user-service = { | systemd.user.services.my-cool-user-service = { | ||
Line 17: | Line 10: | ||
after = [ "network.target" ]; | after = [ "network.target" ]; | ||
wantedBy = [ "default.target" ]; | wantedBy = [ "default.target" ]; | ||
description = " | description = "Мой Классный Пользовательский Сервис"; | ||
serviceConfig = { | serviceConfig = { | ||
Type = "simple"; | Type = "simple"; | ||
Line 24: | Line 17: | ||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
По умолчанию пользовательские сервисы будут остановлены, когда пользователь выйдет из системы, и запустятся снова, когда пользователь снова войдет в систему, благодаря тому, что мы установили {{ic|<nowiki>wantedBy = ["default.target" ]</nowiki>}} в примере. | |||
<span id="Keeping_user_services_running_after_logout"></span> | |||
== Продолжение работы пользовательских служб после выхода из системы == | |||
< | Если вам нужно, чтобы пользовательский сервис продолжал работать после выхода пользователя из системы, вам нужно включить "[https://search.nixos.org/options?channel=unstable&show=users.users.%3Cname%3E.linger&from=0&size=50&sort=relevance&type=packages&query=users.users.%3Cname%3E.linger lingering]", установив {{ic|<nowiki>users.users.<username>.linger = true;</nowiki>}}. | ||
Вы также, вероятно, захотите изменить {{ic|<nowiki>wantedBy = ["multi-user.target" ];</nowiki>}}, чтобы служба запускалась во время загрузки. | |||
</ | |||
[[Category:systemd]] | [[Category:systemd]] |
Latest revision as of 08:29, 8 August 2024
Systemd поддерживает запуск отдельного экземпляра systemd для конкретного пользователя, позволяя ему управлять своими собственными службами.
В NixOS пользовательский сервис может быть выражен с помощью systemd.user.services.<name>
, как описано здесь: https://search.nixos.org/options?query=systemd.user.services.
Это может быть полезно, если вы хотите, чтобы пользователь мог запускать, останавливать и перезапускать свой собственный экземпляр службы без необходимости делать его sudoer.
Пример сервиса:
systemd.user.services.my-cool-user-service = {
enable = true;
after = [ "network.target" ];
wantedBy = [ "default.target" ];
description = "Мой Классный Пользовательский Сервис";
serviceConfig = {
Type = "simple";
ExecStart = ''/my/cool/user/service'';
};
};
По умолчанию пользовательские сервисы будут остановлены, когда пользователь выйдет из системы, и запустятся снова, когда пользователь снова войдет в систему, благодаря тому, что мы установили wantedBy = ["default.target" ]
в примере.
Продолжение работы пользовательских служб после выхода из системы
Если вам нужно, чтобы пользовательский сервис продолжал работать после выхода пользователя из системы, вам нужно включить "lingering", установив users.users.<username>.linger = true;
.
Вы также, вероятно, захотите изменить wantedBy = ["multi-user.target" ];
, чтобы служба запускалась во время загрузки.