LINUX.ORG.RU

Ответ на: комментарий от Deleted

там столько этих опций у юнитов, что глаза разбегаются

Deleted
()
Ответ на: комментарий от Deleted

всё верно. других опций я не видел.
и этой лабудой я тоже пользоваться не стал, запихал в крон

SevikL ★★★★★
()

WatchdogSec= наверное подойдет. не совсем логично, но имхо должно срабатывать.

Restart не забудь включить.

pfg ★★★★★
()
Ответ на: комментарий от pfg

Это что-то не то. Сервис не поминает, просто надо все коннекшены сбросить, а проще всего это сделать его перезапуском.

Deleted
()
[Service]
Restart=on-failure
RuntimeMaxSec=24h

В целом работает, но возможно придется задать еще несколько сопутствующих опций.

surefire ★★★
()
Последнее исправление: surefire (всего исправлений: 1)
Ответ на: комментарий от Deleted

surefire предложил костыль. Но у него немного другой смысл: перезапускать каждые 24 часа работы юнита. Если он в течение этих 24 часов перезапустится по каким-то внешним обстоятельствам, таймер сбросится.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

Ок, попробую этот вариант. Сам сервис не падает, максимум руками могу перезапустить.

Deleted
()
Ответ на: комментарий от intelfx

Если он в течение этих 24 часов перезапустится по каким-то внешним обстоятельствам, таймер сбросится.

Я просто именно так и понял задачу. Отмерять время наработки от запуска, а не по расписанию.

surefire ★★★
()

Есть еще вариант, который можно скрестить с расписанием. Трюк состоит в том, что бы сделать timer и к нему сервис заглушку с опцией Conflicts=, который будет запускаться попутно останавливая твой сервис и останавливаясь возвращать твой сервис в работу.

surefire ★★★
()

man service еще вариант! У пирамиды много граней, а путь один - к вершине!

piwww ★★★★
()
Ответ на: комментарий от intelfx

Имхо тогда это косяк системд. Потому как явно указано сколько сервису жить. Думаю в таком случае должен логгиоваться не «сбой» а какой-нить другой эвент, навроде lifetime exceeded

Siado ★★★★★
()
Ответ на: комментарий от intelfx

т.е. надо сделать myservice_restart.service c

ExecStart=/bin/systemctl restart myservice.service

и к нему прикрутить myservice_restart.timer с нужными интервалми, так чтоли ??

думал такой вариант, но костыльно, хотя и наиболее прямое из всех остальных костылей :-/

pfg ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.