Скрипт на перезапуск программы

Чтобы обеспечить как можно более долгое функционирование императивных программ (даже после сбоя или перезагрузки сервера), можно создать простой bash-скрипт, который будет проверять, работают ли программы, и запустит их в случае необходимости. Чтобы скрипт работал на регулярной основе, можно использовать cron для составления графика запуска скрипта, что гарантирует перезапуск программы в случае ее падения.

Bash-скрипт

Итак, первый шаг – создание самого скрипта. Существует целый ряд программ, таких как Upstart, Supervisor и Monit, которые могут запускать и мониторить приложения на виртуальных частных серверах; bash-скрипт выполняет только запуск программ. Ниже приведен пример сценария, который запускает Apache, в случае если приложение выключено.

nano launch.sh
#!/bin/sh
ps auxw | grep apache2 | grep -v grep > /dev/null
if [ $? != 0 ] then
/etc/init.d/apache2 start > /dev/null
fi

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

Автоматический запуск программ и скриптов при помощи скрипта rc.local после включении Raspberry Pi

chmod +x launch.sh

Apache можно заменить любым необходимым приложением. При необходимости установить скрипт для нескольких приложений, нужно создать новый скрипт для каждого приложения и поместить скрипты в отдельную строку cron-файла.

Установка Cron

После создания скрипта нужно установить график его запуска. Утилита cron позволяет установить интервалы выполнения скрипта. Для начала откройте cron-файл:

Cron предоставляет подробную информацию работе системы расписаний в начале файла.

Определив необходимую частоту запуска скрипта, внесите ее в соответствующую строку. Самый короткий интервал запуска скрипта в cron – 1 минута. Чтобы установить данный интервал, используйте следующий шаблон:

Читайте также:
Как почистить Андроид без программ

Для запуска скрипта каждые 5 минут используйте шаблон:

Установка простого скрипта обеспечит запуск программы после ее падения по любой причине. Это дает гарантию того, что максимальное время, на протяжении которого программа будет отключена – это интервал времени, указанный в конфигурациях cron.

Если серверу нужна программа, работающая более тщательно, можно установить одну из нескольких программ мониторинга сервера (Supervisor, Upstart, or Monit)

Источник: www.8host.com

Проверка работы и перезапуск программы через VBS скрипт

Проверка работы и перезапуск программы через VBS скрипт

Если нужно реализовать проверку работы программы и её перезапуск через VBS скрипт, то вы по нужному адресу. Делается это следующим скриптом:

Set objWMIService = GetObject(«winmgmts:\.rootcimv2») Do Running = False Set colItems = objWMIService.ExecQuery(«Select * from Win32_Process») For Each objItem in colItems If objItem.Name = «Notepad.exe» Then Running = True Exit For End If Next If Not Running Then CreateObject(«WScript.Shell»).Run «Notepad.exe», 1, True End If WScript.Sleep 30000 Loop

Разберем наиболее важные части скрипта. Одна из самых первых строчек в скрипте устанавливает значение переменной Running в значение False — дальше станет понятно зачем.

Как сделать автозапуск программ на Python по расписанию

В строчке If objItem.Name = «Notepad.exe» Then задается имя процесса, который нужно найти в списке процессов на компьютере (именно на компьютере, а не у пользователя!). Затем, если он найден, то строчка Running = True устанавливает переменную Running в значение True. Если же не запущен, то ничего не делается, так как переменная Running уже установлена в значение False.

После этого, если значение Running равно False (строчка If Not Running Then), то происходит запуск нужного исполняемого файла (CreateObject(«WScript.Shell»).Run «Notepad.exe», 1, True). Затем команд WScript.Sleep 30000 в скрипте указывает приостановить работу скрипта на 30000 миллисекунд (на 30 секунд, но время в vbs скрипте задается именно в миллисекундах). Затем строчка Loop приказывает начать выполнение цикла по новой — с команды Do.

Читайте также:
Самый лучший программа для знакомства
Была ли эта статья Вам полезна?

Что в статье не так? Пожалуйста, помогите нам её улучшить!

Источник: pc.ru

Bash скрипт для Linux который перезапускает программу/службу автоматически через заданное время?

Имеется Ubuntu Server 16.04 LTS 64 бит.
Есть программа (сервер) .x86_64 которая имеет проблему «зависания» через некоторое время, и поэтому нужен bash скрипт который будет автоматически через заданное ему время перезапускать программу.

Если есть какие то решения то буду рад услышать.

  • Вопрос задан более трёх лет назад
  • 3308 просмотров

Комментировать
Решения вопроса 0
Ответы на вопрос 5

gbg

Любые ответы на любые вопросы

Либо исправить быдлокод,
Либо засунуть его в systemd а в cron положить вызов systemctl restart [имя куска быдлокода]

Ответ написан более трёх лет назад
Комментировать
Нравится 5 Комментировать

flapflapjack

на треть я прав

nano /usr/local/bin/killproc.sh
туда

#!/bin/bash PROCFOLDER=»/bin/» #папка процесса PROCNAME=»Thunar»; #имя процесса kill `ps aux | grep $PROCNAME| tail -n2 | head -n1 |awk ` $PROCFOLDER$PROCNAME
chmod +x /usr/local/bin/killproc.sh nano /etc/crontab

а туда
*/10 * * * * root /usr/local/bin/killproc.sh

Чтоб каждые 10 минут дергался.
Но сдается мне, что у вас не процесс, а демон, поэтому тупо можно в кронтаб прописать service httpd restart например

Источник: qna.habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru