Griboks
@Griboks

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

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

1. Создать в папке пользователя файл ~/.config/systemd/user/test.service с содержимым:
[Unit]
Description=test
After=network-online.target

[Service]
ExecStart=python3.11 test.py
WorkingDirectory=/home/test
Type=simple
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

2. Выполнить команды:
systemctl --user enable test.service
sudo reboot

3. Проверить статус после перезагрузки:

test@host:~$ systemctl --user status test.service
● test.service - test
Loaded: loaded (/home/test/.config/systemd/user/test.service; enabled; vendor preset: enabled)
Active: inactive (dead)


Однако, если убрать --user и переместить в /etc/... из под sudo, то автозапуск срабатывает.
  • Вопрос задан
  • 404 просмотра
Пригласить эксперта
Ответы на вопрос 1
leahch
@leahch Куратор тега Linux
3D специалист. Dолго, Dорого, Dерьмово.
Я хочу, чтобы программа устанавливалась, запускалась и работа без sudo, т.е. пользователю достаточно было просто запустить установочный скрипт, не вызывая системного администратора (даже для чтения журнала и отправки отчёта об ошибке).

В линуксе, как и в виндовсе есть три типа сервисов.:
1) системный сервис, запускаемый на старте системы и не требующий активного терминала. В линуксе их называют демонами, для простоты. Особо в различия вдаваться не буду, аналог в виндовс - сервис.
2) пользовательский процесс, который может быть запущен в качестве консольного прилижения, без использования графики.
3) графическое приложение, которое должно быть запущено после инициализации графического окружения.
Варианты 1) и 2) запускаются через systemd.
Вариант 3) через ~/.config/autostart/

Давайте определимся что и когда мы хотим запустить?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы