Portál AbcLinuxu, 10. května 2025 02:42

Dotaz: Nechce se spustit exec

26.12.2007 10:30 ahojakkk
Nechce se spustit exec
Přečteno: 311×
Odpovědět | Admin
Zdravím, mám takovýhle problém. Když pošlu:

echo exec('uname -a');

tak je vše ok. Ale pokud do execu hodím tohle:

if(exec('echo blabla >> /dev/ttyS0')) { echo 'melo by to byt ok'; } else { echo 'neco je blbe'; }

tak to vypíše "neco je blbe" = exec se neprovede.

Jsem začátečník, asi bude problém s právy, nevíte co s tím? Díky
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 26.12.2007 10:36 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Nechce se spustit exec
Odpovědět | | Sbalit | Link | Blokovat | Admin
V jakém to je jazyce?
Hello world ! Segmentation fault (core dumped)
26.12.2007 10:50 ahojakkk
Rozbalit Rozbalit vše Re: Nechce se spustit exec
php :)
26.12.2007 11:04 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: Nechce se spustit exec
Odpovědět | | Sbalit | Link | Blokovat | Admin

exec vrací poslední řádek výstupu - pokud bude výstup přesměrovaný, vrátí prázdný řetězec a tedy false. Je nutné použít další parametry - více v manuálu.

I am always ready to learn although I do not always like to be taught. (W. Churchill)
26.12.2007 11:10 ahojakkk
Rozbalit Rozbalit vše Re: Nechce se spustit exec
aha, o to mi ale až tak nejde. Mě se ten exec prostě neprovede, když si v konzoli zapnu "cat /dev/ttyS1" tak se mi nic nenačte.
26.12.2007 11:23 papundekl | skóre: 11
Rozbalit Rozbalit vše Re: Nechce se spustit exec
Je to nejake zmatene. ttyS0 nebo ttyS1? Proc nezkusit 'echo blabla >> blabla.log'
26.12.2007 11:40 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: Nechce se spustit exec
o to mi ale až tak nejde

A o co teda? Co má ten skript vlastně dělat? A může skript vůbec do /dev/... zapisovat (obvykle běží pod nobody)?

I am always ready to learn although I do not always like to be taught. (W. Churchill)
26.12.2007 12:24 ahojakkk
Rozbalit Rozbalit vše Re: Nechce se spustit exec
Právě proto se ptám, prostě chci, aby mi to přes PHP udělalo to samé, jako v terminálu, tam mi to funguje. Osobně si myslím, že to je kvůli právům, takže asi potřebuju, aby PHP mělo lepší práva.
26.12.2007 13:18 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: Nechce se spustit exec
aby PHP mělo lepší práva

Tipoval bych, že tohle bude spíš záležitost Apache, který to PHP spouští - takže se podívat do httpd.conf nebo tomu souboru nastavit stejnou skupinu, pod jakou se spouští ten PHP modul (nebo jak to máme nastavené) a dát právo g+w.
A ještě rýpnutí: proč má PHP skript sahat na přímo na některé zařízení? Přijde mi to totiž (principielně) jako nesmysl a bezpečnostní problém.

I am always ready to learn although I do not always like to be taught. (W. Churchill)
26.12.2007 21:16 ahojakkk
Rozbalit Rozbalit vše Re: Nechce se spustit exec
chci přes PHP ovládat televizi :) (a neříkejte mi, že jsem magor :D )

díky moc, můžu ještě poprosit, jak ty práva mám nastavit? :)
26.12.2007 22:10 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: Nechce se spustit exec
jak ty práva mám nastavit?

Vzhledem k tomu, že soubory v /dev/ vznikají až při běhu systému, tak bude potřeba nastavit něco v udev pravidlech - soubory jsou obvykle v /etc/udev/ a protože tohle neumím, tak odkazuji na dokumentaci (stručný návod).

I am always ready to learn although I do not always like to be taught. (W. Churchill)
Josef Kufner avatar 26.12.2007 22:23 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Nechce se spustit exec
V tom případě se na exec vykašli a napiš to opravdu v php. Prostě otevři /dev/ttyS0 (nebo který) jako normální soubor a nasypej tam data jaká potřebuješ.

Pokud budeš mít problémy s oprávněníma, napiš si démona, který bude mít oprávnění dostatečná a bude poslouchat na soketu. K tomuto soketu pak budeš přistupovat z php. Pokud se ti nechce psát démon, lze velmi jednoduše použít inetd (za cenu trochy výkonu, ale lze to napsat opravdu lehce).
Hello world ! Segmentation fault (core dumped)
26.12.2007 13:21 papundekl | skóre: 11
Rozbalit Rozbalit vše Re: Nechce se spustit exec
Takze se exec provede, ze. Takze uz vite, co mate hledat.

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.