Strona 1 z 1

Skrypt uruchamiany w crontabie nie działa

: 04 listopada 2009, 08:23
autor: Fudddi
Witam.

Drodzy forumowicze po raz pierwszy proszę was o pomoc.
Więc sprawa wygląda tak:
  1. Posiadam następujący skrypt:

    Kod: Zaznacz cały

    #!/bin/bash
    killall -u surf screen 
    screen -AdmS serwer2 ./hlds_run -pingboost 3 -binary ./hlds_i686 -game cstrike +sys_ticrate 450 +map surf_ski_2 -maxplayers 15 +exec server.cfg -port 27666 -noupdate
    
    Znajduje się on w następującej lokalizacji:

    Kod: Zaznacz cały

    /home/surf/restart.sh
    Posiada cmmod: 774

    Został wpisany do crontaba w taki sposób:

    Kod: Zaznacz cały

    1 23 * * * /home/surf/restart.sh
    Skrypt wykonany ręcznie restartuje nawet zawieszony serwer Counter Strike na moim serwerze VPS, natomiast wykonany przez crontab nie działa. Czy błąd leży po mojej stronie?

: 04 listopada 2009, 08:39
autor: lessmian2
Nie zapominaj że skrypt wywoływany z crona, może mieć zupełnie inną zmienną PATH. Możliwe że wystarczy podać pełnie ścieżki do binarek. Zamiast killall podajesz /usr/bin/killall itd. Możesz sprawdzić co wypluwa skrypt dodając taki wpis do crona:

Kod: Zaznacz cały

1 23 * * * /home/surf/restart.sh 2>&1 >/home/surf/restart.log

: 04 listopada 2009, 20:22
autor: gruby
Fudddi, zajrzyj podobny temat - > http://debian.linux.pl/viewtopic.php?t=15993

: 05 listopada 2009, 06:58
autor: Fudddi
Przykro mi lessmian2 zmiana ścieżek nie pomogła, a log jaki powinien być wygenerowany jest pusty plikiem.
gruby pisze:Usuń najpierw wpis w:

Kod: Zaznacz cały

crontab -e
Dalej jako root:

Kod: Zaznacz cały

vim /etc/crontab
i dodajemy do niego:

Kod: Zaznacz cały

1 0 * * * root /home/surf/restart.sh
Wyjdź z edytora, jako root:

Kod: Zaznacz cały

/etc/init.d/cron reload
powinno zadziałać.
Dzisiaj spróbuję tego rozwiązania wyżej.
Jednak mam jedno pytanie, czy ten skrypt nie wykona się przez konto root?
Mój serwer ma być uruchamiany na konkretnym koncie użytkownika chodzi o porządek (stoi u mnie kilka serwerów).

: 05 listopada 2009, 08:23
autor: lessmian2
Tak, w podanym przez grubego przykładzie, skrypt zostanie uruchomiony na prawach roota, ale nic nie stoi na przeszkodzie żebyś to zmienił. Tak przy okazji, napisz jak dodawałeś ten wpis do crona, bo może tu jest przyczyna.

: 05 listopada 2009, 21:16
autor: Fudddi
Więc wpisałem do pliku:
1 0 * * * surf /home/surf/restart.sh
Jutro rano napiszę czy zadziałało.

[ Dodano: |6 Lis 2009|, 2009 06:56 ]
Niestety nadal nie działa dopisałem tą linijkę w poście wyżej wchodzę a tu serwer down.
Screen zawieszony wpisuje ręcznie ./restart.sh serwer się zrestartował i działa:/
Ostatni log z serwera:
L 11/06/2009 - 01:27:18: xxx
i serwer down.
[ Dodano: |6 Lis 2009|, 2009 08:00 ]
W zasadzie jest to ciekawe bo z tego wynika że serwer najpierw się zrestartował a potem padł ale to się nie trzyma *** ponieważ po wyłączeniu ram powinien zostać zwolniony >.< i serwer nie powinien paść chyba jednak restart się wykonał.