ďťż
 
 
   podtrzymywanie pracy programu
 
 

Tematy

 
    
 

 

 

 

podtrzymywanie pracy programu





gelman - 23-12-2009 13:16
Witam.
Potrzebuje ,,czegoś'' co podtrzymywałoby pracę programu.
Mam zamiar uruchomić serwer do gry na serwerze dedykowanym, na Linuksie (Debian), lecz czasami zdarza się że jest tzw. ,,crash'' i serwer się wyłącza.
Czy mógłby ktoś pomóc mi zrobić ,,coś'' co po wyłączeniu się programu wznowiło jego działanie?

W sieci znalazłem coś takiego:

restart.sh echo Starting TheforgottenServer
sleep 0
screen -A -m -d -S tfs ./restart-tfs restart-tfs #!/bin/bash
while true
do
./theforgottenserver
done Ale nie wiem jak z tego korzystać, bo po raz pierwszy będę miał styczność z Linuksem



nikt11 - 23-12-2009 15:08
Prosty skrypt, który sprawdza czy dany program działa, jeśli nie to go włącza np.
#!/bin/bash
if [ -z "$(pgrep nazwa_programu)" ]; then
{
        /home/użytkownik/nazwa_programu
}
fi Powyższy skrypt wystarczy dopisać do crona, żeby sprawdzał np: co 5min.



Ister - 24-12-2009 00:20
Przeszukaj forum, jakiś czas temu wrzuciłem zupełnie sympatyczny skrypcik do podtrzymywania programów (nota bene nastawiony właśnie na serwery gier). Dodam, że do jego odpalenia wymagane jest doinstalowanie daemon i odpowiedni wpis w crontabie (podany razem ze skryptem).



gelman - 25-12-2009 14:55
A mógłbyś podać link, bo przeszukałem forum i nie mogę znaleźć?



Ister - 28-12-2009 11:40
No i wstyd, bo ostatecznie popełniony przeze mnie skrypt wylądował od razu u zainteresowanego na dysku, a nie na forum. A sam pisałem, że wyniki umieszczę :shock: Niniejszym poprawiam się i wklejam zawartość skryptu:
#!/bin/bash
# Sprawdzenie blokady uruchomienia

if [ -a /var/run/sprogram.pid ]; then
echo "Istnieje plik blokady. Czy inny wyzwalacz dziala?";
echo "Jesli nie, usun recznie plik /var/run/sprogram.pid.";
else

# Pobranie wlasnego PID i zalozenie blokady wielokrotnego uruchomienia
myPID=$$;
echo $myPID > /var/run/sprogram.pid;

# Wczytanie listy chodzacych procesow

ps ax > /tmp/sprogram.tmp;

# Sprawdzenie, czy program1 dziala

if grep -c program1 /tmp/sprogram.tmp > 0; then
echo "Program1 dziala";
else
# Uruchomienie programu

echo "Program1 nie dziala, uruchamiam";
cd /home/program1 && daemon -D /home/program1 /home/program1/program1;
fi;

# Sprawdzenie, czy program2 dziala

if grep -c program2 /tmp/sprogram.tmp > 0; then
echo "Program2 dziala";
else

# Uruchomienie programu Program2

echo "Program2 nie dziala, uruchamiam";
cd /home/program2 && daemon -D /home/program2 /home/program2/program2;
fi;

# Czyszczenie po wykonaniu skryptu

rm /tmp/sprogram.tmp;
rm /var/run/sprogram.pid;

# Zabicie skryptu.
# Wymagane, zeby skrypt nie czekal do zakonczenia wszystkich programów.

# kill $myPID;
fi Do uruchomienia trzeba zrobić następujące rzeczy:l Zainstalować daemon:
aptitude install daemon l
l Wkleić zawartość powyższego do dowolnego pliku, w sensownej lokalizacji (np plik /root/podtrzymywanie.sh).l lZmienić odpowiednio program1, program2 na swoje programy, które mają być pilnowane. Oczywiście odpowiednio ścieżki, odpalanie itd. Jak potrzeba więcej - zrobić odpowiednią kopię fragmentu. Jak się komuś chce bawić to może to zamienić na tablicę i utworzyć pętlę, ja pisałem na szybko z myślą o konkretnym programie, dopiero później powstała kwestia uruchomienia drugiego, a nie chciało mi się za bardzo tworzyć. Jak nie potrzeba dwóch - jeden wyhashować.l l Nadać temu plikowi prawo wykonywania przynajmniej dla rootal l Umieścić w crontabie wpis wywołujący ten skrypt co minutę (albo co 5 minut, zależy jak często ma być sprawdzane).l l Cieszyć się działającym skryptem, a jak nie działa to napisać pytanie co się robi źle.l
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis