1

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

2 (08.07.2010 00:44:25 отредактировано Aspedin)

ну например:

#!/bin/bash

while [ 1 ] 
do
  ps -A |grep <Название софтины в процессах>|| <Название софтины>
  sleep 30
done
Debian GNU/Linux testing/sid (2.6.32)

3

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

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

4

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

Debian GNU/Linux testing/sid (2.6.32)

5

На примере ff:

#!/bin/bash

while [ 1 ] 
do
  ps -A |grep firefox-bin || /opt/firefox/firefox -safe-mode
  sleep 1
done
Debian GNU/Linux testing/sid (2.6.32)

6 (08.07.2010 01:41:09 отредактировано microgosu)

программа это игровой сервер по игре 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 как я понял мне для этого нало чтото установить?

7

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

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

#!/bin/bash

while [ 1 ] 
do
  ps -A | grep tee || exec /opt/tee/server -f 123.cfg
  sleep 1
done
Debian GNU/Linux testing/sid (2.6.32)

8

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

9

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

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

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

Debian GNU/Linux testing/sid (2.6.32)

10

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

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

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

resurrect server -f 123.rc