Newsgroup: it.comp.www.php
Titolo: Esecuzione programmi sul server

Ciao a tutti.
c'è un modo con php per controllare se un programma è già in esecuzione sul
server, nel qual caso terminarlo?
O per poter terminare un programma server necessariamente averlo lanciato
con la proc_open?

 lanciato con la proc_open?
Server windows o linux?
puoi usare uno script batch e pidof e kill o relative utilita per
windows.
-- 
I am what I am, I do what I can
L'uomo, conscio di sbagliare, persevera.

 windows.
Ottengo unable to fork e null'altro..
San gùgol non pare avere aiuti per sto warning.. mah..
Server windows..

 San gygol non pare avere aiuti per sto warning.. mah..
Scusa ma se sotto *nix o Windows? Che codice ti restituisce
quell'errore?


 quell'errore?
 exec('nomeprog');
 passthru('nomeprog');
Danno
Warning: exec(): Unable to fork [nomeprog]
Warning: passthru(): Unable to fork [nomeprog]
Ovviamente "nomeprog" l'ho messo ora eh :P
la cosa strana è che se anche gli metto un file non esistente, mi da sempre
unable to fork
eppure il path del programma è giusto, e l'utente internet ha l'accesso a
quel file..
mboh

 Warning: exec(): Unable to fork [nomeprog]
http://www.weberforums.com/viewtopic.php?t=3720


 
http://www.weberforums.com/viewtopic.php?t=3720
mi autoquoto
"e l'utente internet ha l'accesso a
quel file.."
Ovviamente nel dubbio ho provato anche a dare accesso completo a everyone
mboh! :)

 everyone
Che cosa intendi per "accesso". Gli hai dati accessi d'esecuzione? Il
programma necessita di privilegi particolari per essere eseguito? Se si
l'utente che li esegue ha questi privilegi? Hai provato a langiare lo
stesso software con un utente con bassi privilegi, viene eseguito
correttamente? E' un software che necessita' di interazione da parte
dell'utente? Ha una interfaccia grafica?


 Che cosa intendi per "accesso". Gli hai dati accessi d'esecuzione?
Si, ho dato qualsiasi accesso.
Come se eseguissi un "dir"
Anzi, per la precisione ho provato a fare un semplice "dir" e mi da lo
stesso errore..

 stesso errore..
Ho provato il seguente codice non mi da problemi.
<?php 
passthru  ("dir");
?>	
Prova a leggere anche l'ultimo messaggio di questa pagina:
http://www.webhostingtalk.com/showthread.php?threadid=196314
Controlla anche il safe_mode e safe_mode_exec_dir.


 Controlla anche il safe_mode e safe_mode_exec_dir.
In teoria se il safe mode č off (com č) la safe_mode_exec_dir non serve..

eppure il path del programma č giusto
Sicuro sicuro? Prova a mettere \\ anziche' /, e controlla che la variabile
SHELL sia settata correttamente.
Ah, verifica anche che il PHP abbia limiti di memoria abbastanza umani, se
no cocůn che ti fa forkare un secondo processo (ma dipende dalla shell: su
Unix ja fa quasi sempre).
Tenta anche con proc_open() e posix_get_last_error().
Leonardo
-- 
Avere studiato senza mettere in pratica e' inutile;
mettere in pratica senza avere studiato e' pericoloso.
                                                - Conphpucio

 Tenta anche con proc_open() e posix_get_last_error().
Allora ho fatto qualche passo avanti: avevo messo cmd.exe nella directory
del php, ma anche lanciando quello (con path) non funzionava senza dare
accessi al cmd.exe nella cartella system32 (e non chiedetemi perchč :D)
Solo che ora ho un altro problemino: quando lancio il programma sul server,
mi viene mostrata solo la prima riga dell'output, poi si arresta il processo
(non ve n'č traccia sul server).
Lo stesso processo lanciato dal server, ovviamente funziona correttamente..
idee?

 server).
a essere sinceri anche lanciando programmini semplici, non si muove nulla
nella lista dei processi sul server
comincio a avere qualche dubbio :)

(non ve n'è traccia sul server).
Prova a lanciare il processo ridirigendolo su un file, tipo
	DIR > C:\TEMP\DIR.TXT
e guarda se in DIR.TXT c'e' tutto o no.
Se c'e' tutto, e' un problema con le pipes... e non ho idea
nemmeno se si possa risolvere, figurati come :-(


 e guarda se in DIR.TXT c'e' tutto o no.
No, i comandi tipo "dir" o semplici batch che fanno qualche echo, funzionano
e danno tutto l'output sia a video che reindirizzati a file.
i problemi restano 2:
- se lancio il taskkill, anche se non mi da errori, il processo non viene
killato sul server, e non viene generato nessun output
- se lancio un programma un po' + "complesso" mi da solo la prima riga di
output poi il programma si interrompe
BOH!