rap os без Х + twinkle + service чо происходит
-
Добрый день, подскажите пожалуйста, установил настроил twinkle на малину(rasp os linux 10), запускаю через терминал twinkle -c все шикарно, делаю из этого сервис, что б положить в автозапуск,
в /etc/systemd/system/twinkle.service со следующим:
`# Contents of /etc/systemd/system/twinkle.service [Unit] Description=twinkle After=network.target [Service] Type=simple Restart=always ExecStart=/usr/bin/twinkle -c [Install] WantedBy=multi-user.target
при запуске сервиса выходит ошибка:
twinkle.service - twinkle Loaded: loaded (/etc/systemd/system/twinkle.service; enabled; vendor preset: enabled) Active: failed (Result: signal) since Thu 2020-06-18 17:01:23 BST; 8s ago Process: 654 ExecStart=/usr/bin/twinkle -c (code=killed, signal=ABRT) Main PID: 654 (code=killed, signal=ABRT) Jun 18 17:01:23 raspberrypi systemd[1]: twinkle.service: Service RestartSec=100ms expired, scheduling restart. Jun 18 17:01:23 raspberrypi systemd[1]: twinkle.service: Scheduled restart job, restart counter is at 5. Jun 18 17:01:23 raspberrypi systemd[1]: Stopped twinkle. Jun 18 17:01:23 raspberrypi systemd[1]: twinkle.service: Start request repeated too quickly. Jun 18 17:01:23 raspberrypi systemd[1]: twinkle.service: Failed with result 'signal'. Jun 18 17:01:23 raspberrypi systemd[1]: Failed to start twinkle.
-
Используйте утилиту screen ( необходимо будет установить дополнительно) как обходной путь.
Замените в ExecStart=
/usr/bin/twinkle -c
на
screen -D -m -S TwinkleNameProc twinkle -c
-
> @shiyri#6182 при запуске сервиса выходит ошибка:
Скорее всего, причина в том, что Вы пытаетесь запустить GUI программу вне сеанса пользователя, т.е. до того, как запустился оконный менеджер (любой). У вас написано:
> @shiyri#6182 After=network.target
Те. программа будет запущена сразу после инициализации сети, до логина любого пользователя.
Если бы программа запускалась из под cron, то там достаточно указать в скрипте запуска
sudo DISPLAY=:0 <Путь к программе>
Про запуск из под systemd я точно не знаю, но мне кажется гораздо проще включить Вашу программу в список "Autostart" Вашего дисплейного менеджера. Тогда всё будет делаться автоматически и никакой головной боли не возникнет. Но, при этом, должен быть установлен режим автологина.Тогда, после загрузки ОС будет выполнен автологин, после чего запустится дисплейный менеджер и уже он запустит Ваше GUI приложение.