LINUX.ORG.RU

проверка запущен ли screen через cron

 


0

1

Собственно у меня вопрос: есть скрпт который крутится в screen, вероятность что он отвалится мала, но она есть, либо кто-то криворукий может перезагрузить сервер без моего ведома. Встаёт вопрос, как написать скрипт который проверял бы, запущен ли screen и если он не запущен, то запускал бы его.

P.S. cron'ом пользоватся умею, только вот не знаю в какую сторону копать. подозреваю что надо писать sh скрипт?

может просто прописать в rc.local:

su - user -c "screen -dmS screenname yourscript"
? это будет создавать скрин-сессию с нужной прогой при загрузке.

Adjkru ★★★★★
()

просто, если приложение зависнет, а рядом будет только эникэйщик, screen проще убить (по телефону), и доверить работу скрипту, который его перезапустит, чем перезапускать сервак со всеми проектами :)

mansoff
() автор топика

Встаёт вопрос, как написать скрипт который проверял бы, запущен ли screen и если он не запущен, то запускал бы его.

man ps. По памяти:

$ ps -e -o comm | grep screen
Покажет запущен ли screen (если ничего не выдаст - не запущен). Потом через скрипт проверяешь этот вывод, и, если он пустой, запускаешь.

А вообще это все ерунда. Если ты еще не перешел, на идиотский systemd, то посмотри на файл /etc/inittab . Строка

9:23:respawn:/bin/screen
(далее сопоставляй со значениями в строке) запустит на 9-м терминале /bin/screen , при условии что мы загрузились в runlevel 2 или 3; если screen закроется - перезапустит его (respawn). Не это ли тебе нужно? ;)

подозреваю что надо писать sh скрипт?

Со скриптами жизнь становится намного краше и приятней. Очень, очень рекомендую прочесть вот это: http://www.opennet.ru/docs/RUS/bash_scripting_guide/

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

Спасибо, видимо это - то, что доктор прописал!

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