Portál AbcLinuxu, 12. května 2025 04:37

Dotaz: Nefunkčné pcntl_exec (PHP)

14.12.2014 11:44 Peter
Nefunkčné pcntl_exec (PHP)
Přečteno: 236×
Odpovědět | Admin
Dobrý deň vám prajem.

Po doporučení, že namiesto exec by som mal používať pcntl_exec som sa rozhodol to urobiť. Zmenil som moje exec funkcie, ale voľajako to nefungovalo, tak som si urobil testovací príklad:
function test { pcntl_exec('/test'); }
pričom v /test je toto
#!/bin/sh
echo "ok" > /tmp/test
Bohužiaľ ani toto nefunguje - nevypíše to žiadnu chybovú hlášku, php skript sa tvári, že je všetko v poriadku, ale výsledok je nič. Akonáhle ale z tej funkcie vymažem pcntl_ tak ten testovací súbor vytvorí - z toho mi vyplýva, že problém v cestách, alebo v niečom inom by nemal byť.

Kde robím chybu? Mimochodom - CentOS 5/6 a PHP z repozitáru, teda 5.3.

Vopred vám za rady veľmi pekne dakujem.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Josef Kufner avatar 14.12.2014 14:03 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Nefunkčné pcntl_exec (PHP)
Odpovědět | | Sbalit | Link | Blokovat | Admin
Je veliký rozdíl mezi exec() a pcntl_exec(). Rozhodně jedno není prostá náhrada nebo novější verze toho druhého.

exec() spustí nový proces v novém shellu a vrátí poslední řádek výstupu z stdout.

pnctl_exec() nahradí proces PHP novým procesem uvedeným jako parametr.

exec() je tedy pcntl_fork() + pcntl_exec() + kopec omáčky okolo.
Hello world ! Segmentation fault (core dumped)

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.