LinuxForum.Fans
Тема

Авторестарт программы

Автор: microgosu 10 сообщений 5528 просмотров
#57696

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

#57701

ну например:

text

#!/bin/bash

while [ 1 ] do ps -A |grep <Название софтины в процессах>|| <Название софтины> sleep 30 done

#57707

а можно ли както прописать путь к запускаемой программе?

ну например /opt/1234
можно ли прописать .sh? файл
и можно ли запуск программы с параметрами
если не сложно напишите примеры

#57709

Скажите название софтины.
все что вы написали сделать можно.

#57711

На примере ff:

text

#!/bin/bash

while [ 1 ] do ps -A |grep firefox-bin || /opt/firefox/firefox -safe-mode sleep 1 done

#57712

программа это игровой сервер по игре teeworlds тоесть сам сервер лежит у меня в папке /opt/tee назвается файл server его надо запускать с параметром -f 123.cfg



хотел спросить еще чтобы не создавать тему есть скрипт для запуска этого сервера

#!/bin/sh

DIR="/usr/local/games/teeworlds"
CONF="conf.cfg"

case "$1" in
start)
echo "Starting Teeworlds Server..."
start-stop-daemon --start --chdir $DIR --background \
--chuid games:games --exec $DIR/teeworlds_srv -- -f $DIR/$CONF
PID=`ps ax | grep 'teeworlds_srv' | awk '{print $1}'| sed 2d`
echo $PID > /var/run/teeworlds.pid
echo "Started"
;;

stop)
echo "Stopping Teeworlds Server..."
start-stop-daemon --stop --pidfile /var/run/teeworlds.pid
echo "Stopped"
;;

restart)
$0 stop
sleep 1
$0 start
;;

*)
echo "Usage: /etc/init.d/teeworlds {start|stop}"
exit 1
esac

exit 0


но он у меня не запускается ругается на daemon как я понял мне для этого нало чтото установить?

#57716

Покажите "ругань"

Насчет перезапуска, предположим вот так:

text
#!/bin/bash

while [ 1 ] do ps -A | grep tee || exec /opt/tee/server -f 123.cfg sleep 1 done

#57868

/etc/init.d/teeworlds: line 9: start-stop-daemon: command not found

#57869

Проблема тут:

text
start-stop-daemon --start  --chdir $DIR --background
...
start-stop-daemon --stop --pidfile /var/run/teeworlds.pid

Видимо поставили не правильно, или скрипт кривой сам по себе.

#58750

Aspedin, а зачем такой скрипт? :)
Почему нельзя сделать сценарий, назовём его resurrect:

text

#!/bin/sh
while [[ 1 ]]; do $*; done

И запускать нужную для автоперезапуска программу как

text

resurrect server -f 123.rc
Войдите или зарегистрируйтесь, чтобы ответить.