Strona 2 z 2

: 07 kwietnia 2009, 00:36
autor: nova_mara
No dobra RaV. coś się dzieje. Sprawdzałem, które polecenie odpala program spod konsoli, odpowiedź brzmi:

Kod: Zaznacz cały

/bin/sh /root/program.sh
Jeśli dodam ten wpis do crona:

Kod: Zaznacz cały

0-59 * * * * /bin/sh /root/program.sh
to wówczas śmiga elegancko, dokładnie co minutę odpala się program, więc jest super. Ale, no właśnie jest jedno ale, program uruchamiany jest perfekcyjnie co minutę, lecz z każdym uruchomieniem widnieje coraz to więcej tego typu procesów:

Kod: Zaznacz cały

root     28094  0.0  0.3   4176  1640 pts/0    Ss   00:08   0:00 -bash
root     28126  0.0  0.1   2524   864 ?        S    00:12   0:00 /USR/SBIN/CRON
root     28127  0.0  0.0      0     0 ?        Zs   00:12   0:00 [sh] <defunct>
root     28128  0.0  0.1   3848   608 ?        S    00:12   0:00 /bin/sh /root/p
root     28129  0.9  0.4  12980  2372 ?        Sl   00:12   0:01 [b]./program[/b]
root     28135  0.0  0.1   2524   864 ?        S    00:13   0:00 /USR/SBIN/CRON
root     28136  0.0  0.0      0     0 ?        Zs   00:13   0:00 [sh] <defunct>
root     28137  0.0  0.1   3848   608 ?        S    00:13   0:00 /bin/sh /root/p
root     28138  0.8  0.4  12980  2372 ?        Sl   00:13   0:00 [b]./program[/b]
root     28146  0.0  0.1   2524   864 ?        S    00:14   0:00 /USR/SBIN/CRON
root     28147  0.0  0.0      0     0 ?        Zs   00:14   0:00 [sh] <defunct>
root     28148  0.0  0.1   3848   608 ?        S    00:14   0:00 /bin/sh /root/p
root     28149  0.6  0.4  12980  2364 ?        Sl   00:14   0:00 [b]./program[/b]
root     28153  0.0  0.1   3620   928 pts/0    R+   00:14   0:00 ps aux
Jeśli natomiast dodam wpis do crona:

Kod: Zaznacz cały

0-59 * * * * /bin/sh /root/.program.sh
to program wcale nie wstaje, ale jak dodam kilka tych samych programów do crona, oczywiście programy są w różnych folderach, to załapują ale np. co drugi lub co 3. Załóżmy wrzuciłem 5 programów: oznaczmy je literami "P":
  • P1
    P2
    P3
    P4
    P5
Dodałem odpowiednie pliki i wpisy. Każdy osobny do każdego programu.
Chwilę czekam i widzę że sam włączył się program P2 i P3, jak specjalnie zabije procesy P2 i P3, to włącza się tylko np. P5, jak zabije P5 to później się włączy tylko P1 i np. P4, no i tak w kółko, zamiast wszystkie ruszyć po minucie, nie mówię wszystkie w jednym czasie, to one się zmieniają, nie wiem bunt czy co.

¯eby tak najpierw działał tzw. sprawdzacz, żeby to on na początku sprawdził, czy dany proces działa i w razie czego włączył go po upływie minuty.

Masz RaV. lub macie drodzy użytkownicy jeszcze jakieś propozycje? Może ktoś jakiś skrypt sprawdzająco-włączający podsunie. Bo ja w bashu to noga jestem całkowita. Albo ten mój skrypt by ktoś przerobił po zawodowemu. Coś z tymi ścieżkami bezwzględnymi zrobił.

Czyli ogólnie ten wpis:

Kod: Zaznacz cały

0-59 * * * * /bin/sh /root/program.sh
działa wyśmienicie, tylko że odpala coraz to więcej procesów, które będą się z każdą minutą namnażały obciążając maszynę, a ja chcę żeby tylko jeden taki proces działał.
Jeszcze o trochę pomocy proszę Panie i Panowie, i nie będę Was już męczył.

Pozdrawiam.

: 07 kwietnia 2009, 07:54
autor: xmaster
Jakiś czas temu sam potrzebowałem takowego skryptu i jakoś udało mi się go naskrobać.
Mam serwerek z Debianem a na nim 3 różne serwery CS (inne mody)
Poniżej moje skrypty.

Skrypt sprawdzający czy dany serwer jest uruchomiony

Kod: Zaznacz cały

#/bin/bash
# uruchamianie serwera cs 1.6 po jego padzie
ps at > x
if grep -c amxmodx16 x > 0; then
echo "serwer cs 1.6 dziala OK"
else
echo "serwer cs 1.6 nie dziala uruchamiam........."
sms -g plus -n 69344XXXX -m "Misioo 1.6 padl, uruchamiam...."
sh start.16
fi
wpis w cronie

Kod: Zaznacz cały

*/1 * * * *     cd /home/\!serwery/;sh autostart
Nie tylko działa ale również wysyła mi SMSki - wiem jak często pada :)

: 07 kwietnia 2009, 10:17
autor: Ister
Napisałbyś jeszcze, czy program korzysta z czegoś w swoim katalogu, czy też nie.