nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
time lords time lordsНу почему же с натяжкой? Если уже избавляться от bash то уж на широкую ногу. Инструмент и предназначен полностью контролировать демонов без доп скриптов…
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
Time_Lords |
|
Темы:
14
Сообщения:
172
Участник с: 19 февраля 2012
|
Ну почему же с натяжкой? Если уже избавляться от bash то уж на широкую ногу. Инструмент и предназначен полностью контролировать демонов без доп скриптов… Как избавление от sh я имел в виду скрипты /etc/rc.d, которые запускают демоны. Скрипты перезапуска уже пользовательские. Тут systemd является довольно таки хорошим велосипедом. P.S. Наверное, я криворукий. Прибавку по времени не вижу. Как стартовали у меня иксы и все остальное пол часа, так и стартуют :) |
sleepycat |
|
Темы:
98
Сообщения:
3291
Участник с: 19 июля 2011
|
верно, но для этого приходится копировать и долго писать проверки для скрипта, а тут тотчже механизм, только все нужные проверки и фильтры идут в комплекте, да еще и пишутся в одну строку (ну например Before=…). Помоему тоже очевидно, что уж если и убирать sh из инициализации , то системд одно из вменяемых решений.
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
|
Time_Lords |
|
Темы:
14
Сообщения:
172
Участник с: 19 февраля 2012
|
while true; do команда done Простей скрипт перезапуска любой программы, который я использую. Не многим сложнее строчки в systemd. Но указывать это в юните с запуском удобнее. |
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
Сам придумал или кто подсказал? )))
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
sleepycat |
|
Темы:
98
Сообщения:
3291
Участник с: 19 июля 2011
|
time lordsэт даже для перезапузка рабочего???
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
|
Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
time lordsНе любой, а только таких, которые не умеют форкаться и плодить потомков, кроме того, нельзя забывать о возможности “зависания” программы, так что тут всё равно с каждой будет по-своему. Кроме того, как вы предлагаете остановить такую программу? Для этого придётся сначала убить этот скрипт, чтобы он снова её не перезапустил. P.S. Вот вам пример моего скрипта, который я использую на дебиановском сервере для старта, остановки, и автоматического перезапуска программы. Которая, к слову, сама по себе снабжена защитой от “зависаний” с помощью “watchdog” на основе SIGALRM и постоянного обновления таймера. Опущены только начальные дебиановские заголовки и задание конкретных параметров. get_pid() { PID='' [ -f $NPID ] && read P < $NPID [ -n "$P" ] && [ -d "/proc/$P" ] && PID=$P && return 0 return 1 } start_daemon() { echo -n "Starting $NDESC ... " if get_pid ; then echo "Already running" exit 1 fi su -c "setsid $0 cycle &" - $USER limit=50 for((i=0;i<limit;i++)) do sleep 0.1 get_pid && echo "PID:$PID" && break done ((i==limit)) && echo "failed?" } stop_daemon() { echo -n "Stopping $NDESC ... " [ -f "$NLOCK" ] && rm $NLOCK get_pid && kill -HUP $PID limit=10 for((i=0;i<limit;i++)) do sleep 0.1 if get_pid ; then true else echo "done." break fi done ((i==limit)) && kill -KILL $PID && echo "killed." } case "$1" in cycle) exec 1>&- 2>&- 0>&- echo -n > $NLOCK while [ -f "$NLOCK" ] do $NBIN done exit 0 ;; start) start_daemon ;; stop) stop_daemon ;; restart) stop_daemon start_daemon ;; *) echo "Usage: $NNAME start|restart|stop" >&2 exit 1 ;; esac |
Time_Lords |
|
Темы:
14
Сообщения:
172
Участник с: 19 февраля 2012
|
C потомками чихня. Полная. Но этот скрипт в процессе без потомков порождает всего два - выполнение самого скрипта и программа. При зависании убиваете прорамму по пиду - она упала и запустилась заново. Если мне совсем не надо видеть эту программу, то убиваем скрипт потом программу. Кстати. В случае использование systemd потомки будут падать вместе с основной программой. P.S. Мой скрипт короче. эт даже для перезапузка рабочего???Нет. Сам придумал или кто подсказал? )))Пол года назад искал скрит под никсы для автоматического перезапуска фоновой программы. Тогда нашел в гугле |
Time_Lords |
|
Темы:
14
Сообщения:
172
Участник с: 19 февраля 2012
|
Опа. После перехода на systemd у мен отвалился русский в консоли. Не заметил сразу |
sleepycat |
|
Темы:
98
Сообщения:
3291
Участник с: 19 июля 2011
|
time lordsты след. раз так не пугай, а клади скрипт, я вот не до пер сразу, что “под командой” имелось ввиде тело скрипта, вероятно снабженное средствами или приемами выявления повисшей/убитой программы ;)
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
|