zdzisio pisze:
jezeli chcesz dostac to co *zwraca* 'mount' użyj exec ( $command , $output )
ach , dupa! exec ( string $command [, array &$output [, int &$return_var]] )
Funkcja exec
On Tue, 13 Nov +, Grzegorz Pietrzak tomjas pisze: Czytalem wczesniej, ale niewiele mi to mowi (jestem dosc poczatkujacy w php). Dla montowania system zwraca 0 czyli ok a dla odmontowania i wysuniecia dostaje 11 - tego nie rozumiem. Cdrom pozostaje zamontowany. Oczywiscie teraz podalem pelne sciezki do polecen systemowych. Pozdrawiam.
"Zwracane wartości The last line from the result of the command. If you need to execute a command and have all the data from the command passed directly back without any interference, use the passthru() function."
To co zwraca exec to nie błąd, tylko ostatnia linia wyniku. Status wykonania komendy jest w parametrze $return_var podanym do funkcji jako referencja
Tak tak - przepraszam - zapomnialem dopisac ze zmienilem exec na passthru wlasnie po to by zobaczyc co zwraca system. Zawuwazylem ze jesli skrypt nic nie ma do roboty w /mnt/dvd:
passthru('/bin/mount /mnt/dvd',$ret1); echo $ret1; passthru('/bin/umount /mnt/dvd',$ret2); echo $ret2;
to montowanie i odmontowanie dziala poprawnie (eject nie dziala nigdy) natomiast jesli cos robi (np czyta katalogi) to juz nie potrafi odmontowac napedu.
Ok - wydaje mi sie ze sytuacja sie wyjasnila. Gdy czytalem spod skryptu katalogi z cdromu uzywalem funkcji opendir() lecz zapomnialem closedir() zatem nie dalo sie odmontowac napedu. Dalej nei wiem czemu nie dziala passthru('eject',$ret3) i $ret3 zwraca 1.
tomjas
Najprawdopodobniej użytkownik pod którym działa serwer WWW nie ma uprawnień koniecznych do wysunięcia płytki, w końcu to operacja na sprzęcie. Może to zrobić oczywiście root, i na ogół użytkownik w odpowiedniej grupie (zależnej od dystrybucji).
Co mówi "eject -v"? Czy polecenie działa z konta użytkownika? A roota?
Pozdrawiam, Adam
Dalej nei wiem czemu nie dziala passthru('eject',$ret3) i $ret3 zwraca 1.
Tue, 13 Nov +, tomjas napisze:
sprĂłbuj czytaÄ 'lsof | grep /mnt/dvd'