Strona 1 z 1

Wyłączanie się aplikacji z autostartu

: 26 maja 2009, 14:46
autor: arctix
Wita. Mój problem polega na tym, że mam serwer do gry, któremu zdarza się samoistnie wyłączyć. Głównym problemem jest to, że poza dodaniem go do autostartu nie jestem w stanie wiele zrobić. Czy jest możliwość, aby serwer mógł się ponownie włączyć przez

Kod: Zaznacz cały

/etc/init.d/serwer start
lub aby cały komputer został uruchomiony ponownie w razie zawieszenia? Będę wdzięczny za wszelką pomoc w tej kwestii.
Pozdrawiam, arctix

: 26 maja 2009, 15:38
autor: sigo
Wykorzystaj skrypt (w bashu; sprawdzający czy serwer jest uruchomiony) oraz crontab.
Jakieś 2-4 dni temu był omawiany identyczny problem na forum, możesz poszukać, jeżeli nie dasz rady sam napisać kilku linijek.

: 26 maja 2009, 15:41
autor: ponton
Dlaczego nie jestes w stanie nic zrobić? Skoro dodałeś go do autostartu, to znasz komendę, która go uruchamia. Uruchom więc serwer ponownie.

Ew. spróbuj polecenie:

Kod: Zaznacz cały

while true; do uruchom-serwer; done

: 26 maja 2009, 17:34
autor: arctix
Fakt, mogl mnie ktos nie zrozumiec. Nie chodzilo mi o to, ze po zawieszeniu programu nie moge/nie umiem go odpalic. Mialem na mysli samoczynne ponowne uruchomienie, lub restart maszyny. Znalazlem ten temat, o ktorym wspomnial sigo.

Kod: Zaznacz cały

#!/bin/sh 

screen -A -m -d -S `mono /home/aplikacje/a.exe` 

while [ 1 ] 
 do 
   if [ ! `pidof -x screen -A -m -d -S \`mono /home/aplikacje/a.exe\`` ] 
    then 
       screen -A -m -d -S `mono /home/aplikacje/a.exe` 
   fi 
  sleep 120 
done;
Teraz wystarczy, ze zamienie ponizszy fragment:

Kod: Zaznacz cały

screen -A -m -d -S `mono /home/aplikacje/a.exe`
na

Kod: Zaznacz cały

cd /home/user/folder/ && ./server
Z kodu wywnioskowalem, ze skrypt powoduje tylko ponowne uruchomienie i nie gryzie sie z faktem, ze program jest rowniez w autostarcie.

: 27 maja 2009, 08:49
autor: Ister
Uruchamiasz ten skrypt w autostarcie ZAMIAST samego programu. Skrypt odpowiada za to, żeby odpalić nową kopię programy gdy tylko stara padnie.