Automatyczny restart programu w Debianie - skrypt

Potrzebujesz pomocy z C, C++, perl, python, itp.
Trans
Posty: 8
Rejestracja: 15 grudnia 2007, 11:37

Automatyczny restart programu w Debianie - skrypt

Post 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.
sappa
Beginner
Posty: 148
Rejestracja: 08 sierpnia 2006, 15:09

Post autor: sappa »

Kod: Zaznacz cały

if [ `ps ax  | grep  screen | wc -l ` == 0 ]
then 
screen cos tam
fi
Pozdro
Trans
Posty: 8
Rejestracja: 15 grudnia 2007, 11:37

Post 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.
zoltan
Posty: 68
Rejestracja: 11 lutego 2008, 11:26

Post 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
Jacekalex
Posty: 30
Rejestracja: 06 stycznia 2008, 17:12

A nie lepiej tak?

Post autor: Jacekalex »

ODPOWIEDZ