Freesco, NND, CDN, EOS
http://forum.freesco.pl/

Uruchomienie skryptu w tle
http://forum.freesco.pl/viewtopic.php?f=22&t=11095
Strona 1 z 1

Autor:  puchatek007 [ niedziela, 5 lutego 2006, 03:45 ]
Tytuł:  Uruchomienie skryptu w tle

Witajcie.

Botykam się z takim problemem.
Mam skrypt test i chciałbym go odpalić w tle tak by mi nieblokował konsoli.
Skrypt taki:
Nazwa: test

: [/] [] ()
#!/bin/bash
echo start
sleep 60
echo stop
rm test
echo plik usuniety


I teraz odpalam go ta: ./test
pojawia się napis "start", i po 60 sec napis "stop" oraz "plik usuniety".

Ale to mi blokuje konsole.

Jak odpale skrypt: ./test &
to jest tak samo :(.

Więc jak go odpalić w tle??

THX

Autor:  tasiorek [ niedziela, 5 lutego 2006, 03:49 ]
Tytuł: 

Na przyklad w screenie.

Autor:  puchatek007 [ niedziela, 5 lutego 2006, 04:01 ]
Tytuł: 

A dokładniej?? Możesz zarzucić jakiś przykład.

W sumie to ma on być uruchomiony przez inny skrypt. Problem w tym że w momencie odpalenia tego skrptu test, ten wywołujący się nie kończy tylko czeka na zakońćzneie "test" i dopiero się zamyka.

Autor:  tasiorek [ niedziela, 5 lutego 2006, 04:19 ]
Tytuł: 

Nic z tego nie rozumiem, ale to pewnie dlatego, ze jest pozno :P
http://man.przez.net/screen.1.html

Autor:  czerwo [ niedziela, 5 lutego 2006, 10:42 ]
Tytuł: 

ja to robie tak:
#!/bin/sh
/sciezka/do/tamtego/pliku &


I to dziala leci w tlo :) i nie ma problemu ze sie zamyka po zamknieciu konsoli

Autor:  marask [ niedziela, 5 lutego 2006, 11:27 ]
Tytuł: 

ja robię /ścieżka/do/skryptu &1>/dev/null i elegancko 8)

Autor:  puchatek007 [ niedziela, 5 lutego 2006, 15:13 ]
Tytuł: 

Niestety, żaden sposób nie działa :(.

Moze opisze całosć:
Na stronie jest link: "http://10.1.1.1:82/cgi-bin/cosik.pl?10.1.1.17", któy uruchamia skrypt.
Skrypt ten tworzy inny skrypt o nazwie tego ip-ka w katalogu temp: /tmp/10.1.1.17 oraz go uruchamia.
W skrypcie tym jest sleep 60 oraz kilka poleceń iptablesa, oraz wpisy do innych plików a na koniec usunięcie samego siebie: rm /tmp/10.1.1.17.

Te wszystkie operacje działają ładnie, z tym że, w momencie naciśnięcia linka na stronie, automatycznie na 60 sec zostaje przytrzymany skrypt cosik.pl. Dopiero po tych 60 sec z ps x znikają cosik.pl oraz ten skrypt i "życie toczy się dalej" :).

Dlaczego tak jest??

W cosik.pl wpisałem juz:
/tmp/10.1.1.17, /tmp/10.1.1.17 &, /tmp/10.1.1.17 &1>/dev/null
I nic to nie daje :(. Za każdy razem na czas uśpienia 10.1.1.17 sisi też cosik.pl :(.

Ale zagmatwane :D

Autor:  Koriolan [ poniedziałek, 6 lutego 2006, 15:25 ]
Tytuł: 

Faktycznie - niezła "kombinacja alpejska".
Na pewno mozna to zrobić le... tzn. prościej.

Twój problem być może wynika z tego, że cosik.pl uruchamiając skrypt w tle oczekuje na jego zakończenie. O ile pamiętam dokładniej ten problem jest opisany przy programowaniu w linuxie, tam jest kilka komend "exec(inny.skrypt)" ....
Być może to jest ten problem. Gorzej, że w ogóle nie wiem co Ci doradzić by takie coś rozwiązać.
Spróbuj po wywołaniu skryptu "/tmp/110....." dopisać by cosik.pl cos pokazywal lub robił i dowiedz się czy on stoi na:
- exec(skrypt nastepony)
- czy kończy działanie i stoi na zakończeniu
gdyby tak to może mozna dołĸożyć komendę bezwzględnie kończącą cosik.pl.

Autor:  puchatek007 [ poniedziałek, 6 lutego 2006, 15:50 ]
Tytuł: 

Napisałęś: "gdyby tak to może mozna dołĸożyć komendę bezwzględnie kończącą cosik.pl."

Jak wygląda ta komenda??

Po uruchomieniu cosik.pl wypisuje mi na tsronie info że isę uruchomił, nastęnei tworzy plik /tmp/10.1.1.17, nadaje mu prawa wykonywalności, uruchamia go i po jego zakończeniu (po tym sleep 60) wyświetla mi na stronie komunikat. Czyli dopóki /tmp/10.1.1.17 niezakończy sie, doputy cosik.pl będzie wisiał :(.

Niewiem co z tym zrobić :(. Może jest jakiś inny sposób aby ze strony www uruchomi skrypt który wykona coś po upływie 5 minut i się wyłączy nieblokując ów strony??

Autor:  Koriolan [ poniedziałek, 6 lutego 2006, 16:52 ]
Tytuł: 

cosik.pl - to perl ??

Autor:  puchatek007 [ poniedziałek, 6 lutego 2006, 17:08 ]
Tytuł: 

Zacyzna się od: #!/bin/sh i jest w /cgi-bin więc tak.

cosik.pl tak wygląda: http://83.17.147.178/ban/wlacz_ban_5.txt

Uruchamiany jest z www poprzez:

<a href="/cgi-bin/admin/wlacz_ban_5.pl?10.1.1.24" target="footer" name="ON">ON</a>

Wszustko to ma służyć do wyłączania userowi internetu na x minut (Banowanie).
Taka mała funkcja w Panelu Admina.

Autor:  Koriolan [ poniedziałek, 6 lutego 2006, 17:25 ]
Tytuł: 

puchatek007 pisze:
Zacyzna się od: #!/bin/sh i jest w /cgi-bin więc tak.....


Niestety NIE :-(
#!/bin/sh - to ZAZWYCZAJ skrypt shella.

A wygląda tak :

===========================================================
Forbidden

You don't have permission to access /ban/wlacz_ban_5.pl on this server.
Apache/2.0.54 (Unix) DAV/2 PHP/4.4.0 Server at 83.17.147.178 Port 80
===========================================================

Autor:  puchatek007 [ poniedziałek, 6 lutego 2006, 17:31 ]
Tytuł: 

oki poprawiłem linka. Zamieniłem pl na txt coby wyświetlił zawartośc pliku.

Polecenia iptables są zahaszowane co by mi nie szkudziły podczas testów.

Strona 1 z 1 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/