Ouvrire un terminal linux avec php
yuri648
Messages postés
785
Statut
Membre
-
creadiff Messages postés 483 Statut Membre -
creadiff Messages postés 483 Statut Membre -
Bonjour,
comment ouvrir un terminal avec un script php j'ai essayé la commande
exec(`gnome-terminal') ; et sa na pas marché.
et comment lancer des commande dans ce terminal
merci d'avance
comment ouvrir un terminal avec un script php j'ai essayé la commande
exec(`gnome-terminal') ; et sa na pas marché.
et comment lancer des commande dans ce terminal
merci d'avance
A voir également:
- Ouvrire un terminal linux avec php
- Commande terminal mac - Guide
- Linux reader - Télécharger - Stockage
- Easy php - Télécharger - Divers Web & Internet
- Toutou linux - Télécharger - Systèmes d'exploitation
- R-linux - Télécharger - Sauvegarde
10 réponses
le probleme que je veux executer un fichier avec la commande
nohup ./serveur & ,quand je le lance sur la console ya pas de probleme, mais quand je veux lancer le fichier avec un script php le navigateur se bloque , alor je me suis dis j'ouvre la console avec php et je saisit la commande avec php aussi
voici la commande qui lance le fichier avec php mais le navigateur se bloque
system('cd /var/www/application/; sudo nohup ./serveur &');
merci
nohup ./serveur & ,quand je le lance sur la console ya pas de probleme, mais quand je veux lancer le fichier avec un script php le navigateur se bloque , alor je me suis dis j'ouvre la console avec php et je saisit la commande avec php aussi
voici la commande qui lance le fichier avec php mais le navigateur se bloque
system('cd /var/www/application/; sudo nohup ./serveur &');
merci
sudo demande un mot de passe. Du coup, quand le navigateur effectue la requête, PHP effectue la ligne de commande, qui demande un mot de passe.
Que fait PHP pendant ce temps ? Rien, l'exécution des lignes de commandes avec exec() ou system() se fait de façon synchrone, ce qui signifie que le script attend la fin de l'exécution pour reprendre.
Essaie proc_open, qui permet l'asynchrone.
Que fait PHP pendant ce temps ? Rien, l'exécution des lignes de commandes avec exec() ou system() se fait de façon synchrone, ce qui signifie que le script attend la fin de l'exécution pour reprendre.
Essaie proc_open, qui permet l'asynchrone.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sa na pas marché voici le code
<?php
$descriptorspec = array(
0 => array("pipe","r"),
1 => array("pipe","w"),
2 => array("file","./error.log","a")
) ;
// define current working directory where files would be stored
$cwd = './' ;
// open process /bin/sh
$process = proc_open('/bin/sh', $descriptorspec, $pipes, $cwd) ;
if (is_resource($process)) {
// anatomy of $pipes: 0 => stdin, 1 => stdout, 2 => error log
fwrite($pipes[0], 'cd /var/www/application;sudo nohub ./serveur& ') ;
fclose($pipes[0]) ;
// print pipe output
echo stream_get_contents($pipes[1]) ;
// close pipe
fclose($pipes[1]) ;
// all pipes must be closed before calling proc_close.
// proc_close() to avoid deadlock
proc_close($process) ;
}
/*
$t=shell_exec('cd /usr/lib/pvm3/lib; sudo ./ad.sh ');
echo "*".$t;*/
?>
merci
<?php
$descriptorspec = array(
0 => array("pipe","r"),
1 => array("pipe","w"),
2 => array("file","./error.log","a")
) ;
// define current working directory where files would be stored
$cwd = './' ;
// open process /bin/sh
$process = proc_open('/bin/sh', $descriptorspec, $pipes, $cwd) ;
if (is_resource($process)) {
// anatomy of $pipes: 0 => stdin, 1 => stdout, 2 => error log
fwrite($pipes[0], 'cd /var/www/application;sudo nohub ./serveur& ') ;
fclose($pipes[0]) ;
// print pipe output
echo stream_get_contents($pipes[1]) ;
// close pipe
fclose($pipes[1]) ;
// all pipes must be closed before calling proc_close.
// proc_close() to avoid deadlock
proc_close($process) ;
}
/*
$t=shell_exec('cd /usr/lib/pvm3/lib; sudo ./ad.sh ');
echo "*".$t;*/
?>
merci
elle saubgarde les resultat de la commande
fwrite($pipes[0], 'cd /var/www/application;sudo nohub ./serveur& ') ;
voici un exemple du fichier error.log
Socket connection successful 3
Socket connection successful 3
Socket connection successful 3
Thread * accepts socket 4 connection from IP 192.168.1.1
Socket connection successful 3
Thread * accepts socket 4 connection from IP 192.168.1.1
Thread * accepts socket 4 connection from IP 192.168.1.1
Socket connection successful 3
Thread * accepts socket 4 connection from IP 192.168.1.1
Thread * accepts socket 4 connection from IP 192.168.1.1
si jexecute sudo nohub ./serveur& dans la console j'aurai le meme resultat
fwrite($pipes[0], 'cd /var/www/application;sudo nohub ./serveur& ') ;
voici un exemple du fichier error.log
Socket connection successful 3
Socket connection successful 3
Socket connection successful 3
Thread * accepts socket 4 connection from IP 192.168.1.1
Socket connection successful 3
Thread * accepts socket 4 connection from IP 192.168.1.1
Thread * accepts socket 4 connection from IP 192.168.1.1
Socket connection successful 3
Thread * accepts socket 4 connection from IP 192.168.1.1
Thread * accepts socket 4 connection from IP 192.168.1.1
si jexecute sudo nohub ./serveur& dans la console j'aurai le meme resultat