![]() |
![]() |
--AQuatro-- |
![]()
Post
#1
|
Goście ![]() |
Witam.
Chciałbym odpalic sobie skrypcik za pomocą : shell_exec (); Php, czeka jednak az odpalony program ukonczy dzialanie. Ja nie chce, aby php czekał, gdyż uruchamiany program może działać długo, chcę aby odpalił skrypt i nie czekał na jego wynik. Jak to zrealizować ! ? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 749 Pomógł: 37 Dołączył: 3.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
może iframe niewidoczne?
Rozumiem że chodzi Ci o ukrycie efektu ładowania strony... -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 2 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
http://php.net/register_shutdown_function
Tam masz wszystko opisane... a w skrócie to ten kod zostanie wywołany dopiero po zakończeniu przetwarzania skryptu. Inaczej (elegancko) nie da rady. Ten post edytował Snowak 3.02.2008, 22:32:07 |
|
|
--AQuatro-- |
![]()
Post
#4
|
Goście ![]() |
Jakos jednak nie dziala to do konca.
dodałem na końcu kodu: register_shutdown_function(shell_exec('python moj_program.py')); I niby odpala program w pythonie. Tyle, że czekam na zakończenie jego działania, czyli wiele się nie zmieniło. Czyżbym coś przeoczył. ? |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 275 Pomógł: 44 Dołączył: 23.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
ignore_user_abort" title="Zobacz w manualu PHP" target="_manual - możesz zamknąć stronę, ale skrypt będzie się dalej wykonywał.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 154 Pomógł: 5 Dołączył: 24.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
spróbuj
-------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 29.09.2004 Ostrzeżenie: (0%) ![]() ![]() |
/dev/null rowniez nie działa.
Takze czekam na wykonanie skryptu. Ignore user abort, to chodzi chyba o wykonywanie skryptu strony w php ?... a nie dowolnego skryptu uruchomionego na serwerze. Chyba jedyna nadzieja w register_shutdown_function. Poczytam o tym jeszcze... |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 275 Pomógł: 44 Dołączył: 23.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
/dev/null rowniez nie działa. Takze czekam na wykonanie skryptu. Ignore user abort, to chodzi chyba o wykonywanie skryptu strony w php ?... a nie dowolnego skryptu uruchomionego na serwerze. Chyba jedyna nadzieja w register_shutdown_function. Poczytam o tym jeszcze... No to jak uruchamiasz skrypt php na serwerze, to możesz go uruchomić tak: Kod php plik.php & Wtedy skrypt działa w tle. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 154 Pomógł: 5 Dołączył: 24.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
przetestowalem moja wersje i u mnie dziala
![]() zobacz sobie w error_log czy nie ma jakis bledow np brak praw dostepu do zrobienia czegos. pamietaj o chmodach kopiuj Kod #!/bin/sh ping wp.pl >> kopiuj.txt & kopiuj.php
musi to dzialac poniewaz kiedys kopiowalem w ten sposob gigabajtowe pliki. PS: dlatego kopiuj bo pierwotnie kopiowalem plik, ale to sie dzieje zbyt szybko. lepiej widac to na pingu ![]() Ten post edytował MrMag 4.02.2008, 12:06:40 -------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 29.09.2004 Ostrzeżenie: (0%) ![]() ![]() |
Chm....
Sprawdziłem twój przykład. Również u mnie działa.... Prawdopodobnie kłopot w tym, że przesyłam do pythona jeszcze dodatkowy parametr w postaci ścieżki. normalnie wyglądało by to tak: Kod python nazwa_programu.py sciezka a w php: Kod shell_exec("python nazwa_programu.py ".$sciezka." > /dev/null"); Ale to nie działa. Nie wiem dlaczego nie działa również opcja: Kod shell_exec("python nazwa_programu.py ".$sciezka." &"); Czyli mimo iż na końcu daję symbol odpalenia w tle, to i tak czekam na wykonanie skryptu pythona. Jedynym rozwiązaniem było by chyba zrobić skrypcik w bashu, tak jak ty zrobiłeś z przykładem pinga, i w nim komendę uruchomienia skryptu pythona w tle. Tyle, że do skryptu w bashu musialbym przesłać w jakiś sposób scieżkę za nazwą ... A nie wiem jak bash przechwytuje kolejne parametry po nazwie... Ten post edytował AQuatro 4.02.2008, 12:30:17 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 154 Pomógł: 5 Dołączył: 24.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
pamietam, ze tez mialem problemy z parametrami bo cos nie lykalo. jak to rozwiazesz to daj znac bo wkrotce znow bede musial wykorzystac odpalanie skryptu w tle.
w bashu odwolanie do parametrow: $1 $2 itd. PS: zdaje sie, ze jak mialem w nazwie pliku jakiekolwiek rozszerzenie to byly problemy. nie jestem tego pewien, ale mozesz sprawdzic. moze sproobj najpierw utworzyc zmeinna z ciagiem polecen i daj exec na zmiennej? PS2 ![]() Ten post edytował MrMag 4.02.2008, 12:42:25 -------------------- |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 29.09.2004 Ostrzeżenie: (0%) ![]() ![]() |
No, działa.
Ale musiałem zrobić, tak jak zrobiłeś z pingiem. Osobny plik, skrypt w bashu. plik.sh Kod #!/bin/sh python nazwa_programu.py $1 & i w php: Kod shell_exec("sh plik.sh ".$sciezka."> /dev/null"); Wtedy zadziała. Bez basha się nie obejdzie. Próbowałem nawet zapisać Kod shell_exec("python nazwa_programu.py ".$sciezka." & > /dev/null"); Ale zawsze czeka na wykonanie kodu. Ale ogólnie, problem rozwiązany.. Dzięki za wszelkie sugestie. Ten post edytował AQuatro 4.02.2008, 15:59:58 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 275 Pomógł: 44 Dołączył: 23.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Czyli tak jak mówiłe, trzeba na końcu dodać &, i skrypt jest wykonywany w tle...
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 09:16 |