| 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 |
|
|
Темы:
47
Сообщения:
4763
Участник с: 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ты след. раз так не пугай, а клади скрипт, я вот не до пер сразу, что “под командой” имелось ввиде тело скрипта, вероятно снабженное средствами или приемами выявления повисшей/убитой программы ;)
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
|