Strona 1 z 1

Automatyczny restart programu w Debianie - skrypt

: 15 czerwca 2008, 19:09
autor: Trans
Mam pytanie, stawiam serwer do gry na Debianie przy pomocy screena i zdarza się, że się wyłączy i muszę go od nowa uruchamiać. I tutaj mam do was pytanie jak zrobić autorestartera danego programu?

Pod Windows wygląda to tak:

Kod: Zaznacz cały

echo off
title Aries Server
cls
:controllerini
:begin 
Aries-XML.exe /REALTIME
echo :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echo ::  Your Server crashed, the restarter is restarting your Server.            ::
echo :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
goto :controllerini
A pod Linuksa znalazłem taki:

Kod: Zaznacz cały

#!/bin/bash

#
# Make your no-cvs sources from otserv run in linux
# by Ulisses - Brasil
# Last update: Mar/2006
#

i=1
while [ $i -le 5000 ]
do
./otserv 2>> ./ots-error.txt
i=`expr $i + 1`
done
Jednak nie działa dobrze, w ogóle nie działa. Dlatego proszę jakiegoś speca, aby pomógł mi bo to pewnie chwila dla niego.

: 15 czerwca 2008, 19:24
autor: sappa

Kod: Zaznacz cały

if [ `ps ax  | grep  screen | wc -l ` == 0 ]
then 
screen cos tam
fi
Pozdro

: 15 czerwca 2008, 20:16
autor: Trans
Dzięki wielkie sappa, ale chyba wina z mojej strony bo nie do końca dobrze się wyraziłem. Chodziło mi dokładnie o to, że gdy włączam serwer wpisuje:

Kod: Zaznacz cały

screen -S server
cd server
./server
[tu się ładuje]
CTRL+A+D żeby wyjść
(po tam kilkudziesięciu godzinach się wykrzacza z jakiegoś tam błędu)
wtedy wchodzę w screen i od nowa włączam

I właśnie chodzi mi o to żeby automatycznie się włączał ponownie gdy się wyłączy ten ./server
Czy da rade takie coś zrobić. Wyobrażam to sobie tak, że w robię screen a w nim uruchamiam jakiś skrypt np. ./restart który będzie restartował serwer gdy ten się wysypie.

Pozdrawiam i dziękuje za pomoc z góry.

: 24 czerwca 2008, 11:01
autor: zoltan
Może nie sprawdzisz od razu jak się wysypie ale możesz sprawdzać co chwilę czy program działa
Taki skrypcik (z posta wyżej) musisz uruchamiać cronem np. co pięć minut (może częściej?). Skrypt sprawdza czy program jest odpalony, jeżeli nie to go uruchamia. Chyba o to chodzi bo jak się wykrzaczy to ps już go nie pokaże. Wtedy skrypt go odpali.

Kod: Zaznacz cały

crontab -e 
i dodajesz wg.

Kod: Zaznacz cały

min godzina dzien_miesiaca miesiac rok nazwa_skryptu
http://pl.wikipedia.org/wiki/Crontab

A nie lepiej tak?

: 05 lutego 2009, 08:01
autor: Jacekalex