Kezdőoldal » Számítástechnika » Programok » Hogyan tudok php-vel linux...

Hogyan tudok php-vel linux parancsokat, bash scripteket futtatni?

Figyelt kérdés
Odáig eljutottam hogy lefut a bash script (exec () vagy shell_exec () ) paranccsal, de nem minden parancsot hajt végre. A sleep meg az echo még működött, de az amixer-el nem tudtam pl módosítani a hangerőt, hiába az "export DISPLAY=:0

2016. febr. 15. 22:23
 1/6 kovpet ***** válasza:

"nem tudtam"


Hibaüzenet?


"hiába az "export DISPLAY=:0"


Hát, grafikusan nem nagyon fog menni :)

2016. febr. 16. 10:05
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:
Mert fut a :0-án x szerver, ami be is enged localhostról?
2016. febr. 16. 13:01
Hasznos számodra ez a válasz?
 3/6 A kérdező kommentje:

így néz ki a php kód ( [link] )


<?php

$message=exec("/....../test.sh");

print($message);

?>


Ez pedig a bash script:



#!/bin/bash


export DISPLAY=:0

amixer sset 'Master' 5%

sleep 5

amixer sset 'Master' 10%

echo 'Vegrehajtva'


Hibaüzenetet nem sikerült kicsikarnom még belőle... :(


Ha külön a bash scriptet futtatom akár gépen, akár ssh-n, akkor működik, de így php-n keresztül nem

2016. febr. 16. 19:07
 4/6 anonim ***** válasza:

Eszközölj egy ilyesmi változtatást a PHP-szkriptben:

<?php

exec("/....../test.sh",$out);

print_r($out);

?>

Ugyanis az exec() leírásában szerepel, hogy nem az összes kimenetet adja visszatérési értékként, csak az utolsó sort:

"Return Values


The last line from the result of the command."


Ha az összes kimenet kell, használd a függvény második argumentumát:

"To get the output of the executed command, be sure to set and use the output parameter. "

Forrás: [link]


Egyébként ha konzolról (SSH-ból) futtatod a PHP-szkriptet ilyen módon:

php test.php

akkor lefut?


Ha a webszervert futtató felhasználó nevében,

su -c "php volume.php" felhasznalo

akkor is?

2016. febr. 16. 19:47
Hasznos számodra ez a válasz?
 5/6 A kérdező kommentje:

Minden felsorolt esetben lefutott. Módosítottam így a kódot:


[link]


így sem ad kimenetet. :(

2016. febr. 16. 20:14
 6/6 kovpet ***** válasza:

passthru-val? 2>&1 -el?

Konzolból jó az, amit futtatsz?

A display minek?

2016. febr. 16. 21:34
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!