Portál AbcLinuxu, 15. května 2024 19:54


Dotaz: PHP SHELL EXEC

10.4.2008 09:55 deejay | skóre: 2
PHP SHELL EXEC
Přečteno: 1015×
Odpovědět | Admin
Dobry den, riesim jeden problem v php s kombinaciou bash skritpu.Na apache serveri mi bezi stranka v php, ktora ma spustit skript napisany v bash tiez na danom pocitaci,vsetko funguje ok, skript sa spusti,ale potrebujem aby php necakalo po spusteni skriptu na jeho dokoncenie.Skript bezi 15 minut a ja nechcem aby php cakalo dokym dany skript skonci..Viete mi poradit ako na to?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Pavel Stárek avatar 10.4.2008 10:59 Pavel Stárek | skóre: 44 | blog: Tady bloguju já :-) | Kolín
Rozbalit Rozbalit vše Re: PHP SHELL EXEC
Odpovědět | | Sbalit | Link | Blokovat | Admin
Možná takto:

switch (pcntl_fork()) {
  case 0:
    $cmd = "/path/to/command";
    $args = array("arg1", "arg2");
    pcntl_exec($cmd, $args);
    // the child will only reach this point on exec failure,
    // because execution shifts to the pcntl_exec()ed command
    exit(0);
  default:
    break;
}

// parent continues
echo "I am the parent";
Není to z mojí hlavy, našel jsem to jako komentář v popisu funkce pcntl_exec(). Takže jsem to ani nezkoušel a možná to nebude ani ono.
Kdo chce, hledá způsob; kdo nechce, hledá důvod.
AraxoN avatar 10.4.2008 11:14 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: PHP SHELL EXEC
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nestačilo by na koniec príkazu hodiť ampersand? Takto nejak:
exec("skript_co_dlho_bezi > /dev/null &");
10.4.2008 12:42 deejay | skóre: 2
Rozbalit Rozbalit vše Re: PHP SHELL EXEC
No tak ja to vyzkousim pres vikend a uvidime co to udela ...S tym ampersandem jsem to zkousel hned jak jsem psal skript,ale bohuzel to nepomohlo,bezelo to rovnako jako bez neho, ale aj tak vdaka za radu ;-)
10.4.2008 13:53 maleprase | skóre: 28
Rozbalit Rozbalit vše Re: PHP SHELL EXEC
ona je tam totiz jeste takova poznamka:

Note: If you start a program using this function and want to leave it running in the background, you have to make sure that the output of that program is redirected to a file or some other output stream or else PHP will hang until the execution of the program ends.

viz http://cz.php.net/manual/en/function.exec.php
11.4.2008 11:36 deejay | skóre: 2
Rozbalit Rozbalit vše Re: PHP SHELL EXEC
Tak chtel bych vsetkym podekovat za prispevky a rady, dneska jsem to vyzkousel a stacilo presmerovat vystup z daneho bash skriptu treba na /dev/null a pak php skript necekal az se bash skript dokoncil. Jeste raz dekuji za pomoc

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.