Nowe posty

Autor Wątek: skrypt Problem  (Przeczytany 4238 razy)

marczak

  • Gość
skrypt Problem
« dnia: 2009-02-01, 23:15:40 »
Witam mam pewnien problem. Potrzebuje skrypt, który bedzie dzialal na takiej zasadzie:

1. Zostanie pobrany plik
2. Plik zostanie usunięty
3. Przerwa czasasowa 60 sekund
4. Zostanie wyłączony proces skryptu
5. ZOstanie od nowa włą czony


Napisalem sobie takie coś, lecz nie wyłącza mi procesu i się tworzy pętla z procesami.

Gdzie mam błąd ??

#!/bin/sh

wget http://aaa.pl/1.php
rm -f 1.php
sleep 10

killall -r 1
./1
Prosze o odpowiedź
Pozdrawiam

chmooreck

  • Gość
skrypt Problem
« Odpowiedź #1 dnia: 2009-02-01, 23:34:26 »
nie lepiej odpalić po prostu siebie w tle ?

marczak

  • Gość
skrypt Problem
« Odpowiedź #2 dnia: 2009-02-01, 23:44:13 »
nie wlasnie:/ chcialbym żeby to killowalo proces i od nowa uruchamialo.

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3069
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
skrypt Problem
« Odpowiedź #3 dnia: 2009-02-02, 07:35:32 »
Jeżeli 1 jest rzeczywiście skryptem, to nie występuje w drzewie procesów jako 1 tylko jako jego interpreter (bash, sh, python, whatever). Tak więc nie zabijesz go po nazwie skryptu.

I z ciekawości, po co ten -r w killall? To nie jest wyrażenie regularne...
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

chmooreck

  • Gość
skrypt Problem
« Odpowiedź #4 dnia: 2009-02-02, 09:57:29 »
Cytat: marczak
nie wlasnie:/ chcialbym żeby to killowalo proces i od nowa uruchamialo.
Dlaczego ?

Jak zabijesz siebie, to jakim cudem chcesz dalej się wykonywać ? To jest chyba kwestia przypadku, czy kill przyjdzie przed, czy też po wywołaniu następnej instancji samego siebie...

Edit: poza tym zamiast jawnie odwoływać się do nazwy skryptu lepiej będzie użyć
$0

marczak

  • Gość
skrypt Problem
« Odpowiedź #5 dnia: 2009-02-02, 18:05:03 »
a mozna to zrobic tak, żeby nie killowal tylko poprostu wykonal skrypt potem wczytal dane z innego pliku i od nowa wykonal ?? taka petla...

chmooreck

  • Gość
skrypt Problem
« Odpowiedź #6 dnia: 2009-02-02, 21:18:11 »
oczywiście, że można:
google -> bash pętle

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1177
    • Zobacz profil
skrypt Problem
« Odpowiedź #7 dnia: 2009-02-02, 21:23:01 »
#!/bin/sh

wget http://aaa.pl/1.php
rm -f 1.php
sleep 10

exec $0 $@
$0 to nazwa aktualnie wykonywanego skryptu (czyli odwołanie do siebie)
$@ to lista parametrów skryptu (ty akurat ich nie używasz, ale tak na przyszłość; poza tym nie zaszkodzi, nawet jak nie używasz)