Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Как запустить самовозобновляющийся (self-restoring ?) процесс в Ubuntu?  (Прочитано 662 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн phillipock

  • Автор темы
  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Что есть:
1. На VPS стоит Ubuntu.
2. Там крутится некий процесс  (скрипт на Питоне, но  это не важно), в фоновом режиме, который должен работать ВСЕГДА.
3. По разным причинам, иногда этот процесс останавливают (например, хостер может ограничивать время непрерывной работы процесса и т.п.).

Что нужно:
1. Чтобы если этот процесс "убили", он бы запустился заново.

---------------------------------
Идеи:
1. Запустить  ДВА процесса. Первый, "А",   смотрит - "крутится" ли второй процесс, "Б". 
Если процесс Б работает, то процесс А ничего не делает.
А если процесс Б перестал выполняться, процесс "А"  заново запускает "Б" в фоновом режиме.
К сожалению, я не могу пока сам такое написать...
Поиск в Гугле по словам how run process+ self recovering/ self recovering /self-regenerating /self-healing
ничего не дал....(
2. А может попроще как? Должно же быть такое как то уже реализовано??

Оффлайн Сперанский

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4055
  • Dictum ac factum
    • Просмотр профиля
Ваши рассуждения под п.1 верны, в чем, собственно, проблема то? Что конкретно не получается? Можно ёщё "попросить" cron "последить за процессом каждые N-секунд, например.
« Последнее редактирование: 30 Апреля 2013, 07:49:36 от Сперанский »

Оффлайн quiet_readonly

  • Участник
  • *
  • Сообщений: 133
    • Просмотр профиля
Запустите его как сервис upstart. Для этого потребуется написать файл конфигурации сервиса, в том числе указать, чтобы upstart перезапускал службу, если она завершилась.

Это стандартная фича upstart и systemd, но в убунте используется upstart.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Еще вариант сменить хостинг дабы не киляли процессы за зря
А тот что ограничивает время работы процесса он наверное вам еще приплачивает за то что им пользуетесь? Иначе такой изврат я объяснить не могу.

Пользователь решил продолжить мысль 30 Апреля 2013, 09:11:42:
Ваши рассуждения под п.1 верны, в чем, собственно, проблема то? Что конкретно не получается? Можно ёщё "попросить" cron "последить за процессом каждые N-секунд, например.
Только вот проблема. Вотчдога тоже пристрелят ибо тоже процесс и тоже непрерывно работает =) а так всё пучком.

Сделай чтобы процесс не дожидаясь внешнего воздействия форкался (man fork) и продолжал работу под новым именем^W PID'ом.
« Последнее редактирование: 30 Апреля 2013, 09:11:42 от Yurror »

 

Страница сгенерирована за 0.018 секунд. Запросов: 22.