Kill processus PHP sous serveur web linux

new morning Messages postés 127 Date d'inscription   Statut Membre Dernière intervention   -  
 celiane -
Bonjour,

Je suis sur un script de backup automatique qui exécute une boucle infinie du type

<?php

//boucle_infinie.php : ce scipt sauvegarde mon site tous les jours

$une_journee = 60*60*24 ;

function backup ($site_web) {
(etc. etc.) ;
}

while (1) {
backup ($site_web) ;
sleep ($une_journée) ;
}

?>


Ca marche très bien, sauf qu'à un moment donné il peut m'être utile de modifier certains paramètres : comment faire un autre script qui fasse quelque chose du type :

<?php

//kill_boucle_infinie.php : ce scipt arrête boucle_infinie.php

$boucle_infinie = ("boucle_infinie.php") ;
kill ($boucle_infinie) ;

?>


Le tout étant sur un serveur web linux (Apache -PHP -MySQL), je peux aussi utiliser la commande PH system et le kill de linux, sous forme "system (kill PID)" mais comment récupérer le PID dans un script PHP ?

La réponse est peut-être là mais je suis pas sûr de tout comprendre : je voudrais stopper UN processus et il parle de "killal" : https://www.php.net/manual/en/function.shell-exec.php#57215
A voir également:

9 réponses

celiane
 
APACHE : server-status

Exemple d'une page server-status : http://www.apache.org/server-status

Vous y découvrez le : PID de la requete ;)

après avec : kill PID

pour plus d'information regardez le script shell qui restart apache : /etc/init.d

:)
2
arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
J'ai une question : le processus que tu lances dans ton php, c'est une procédure PHP c'est ça pour backuper ton site?
Je parle pour ton premier script.
0
new morning Messages postés 127 Date d'inscription   Statut Membre Dernière intervention   19
 
VIVIVI, c'est bien ça.
0
arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
Alors non tu ne peux pas faire ce que tu souhaites.

En revanche tu peux déposer un script directement sur le serveur unix pour effectuer cette sauvegarde, ce qui sera beaucoup plus pratique.

Puisque ta commande killall fonctionnera, mais tu ne pourrais pas l'employer puisque ton fichier php est exécuter dans apache je suppose, donc pas de processus visible sur ta machine.

Donc pas de killall, en revanche si tu veux utiliser un script, j'en ai un à te proposer.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
new morning Messages postés 127 Date d'inscription   Statut Membre Dernière intervention   19
 
Je suis très intéressé par ce script, quelle que soit la réponse à la question suivante.

Ce script nécessite-t-il un accès SSH ou peut-il être executé depuis PHP sous apache/linux ? Le but serait alors de l'utilser depuis un hébergement web mutualisé sans accès SSH.
0
arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
Oui il pourrait mais je crois pas que ton hébergeur te laisse utiliser cette commande.

De plus en mutu tu ne peux pas déposer de script enfin si mais tu ne pourras pas l'exécuter je pense.

Règles de sécurité oblige.
0
new morning Messages postés 127 Date d'inscription   Statut Membre Dernière intervention   19
 
Bon ben j'essairerai déjà avec le script que tu proposes en local, et puis par la suite je verrais ce qu'il est possible de faire... ou pas, en fonction des sécurités imposées par les hébergements mutualisés.
0
new morning Messages postés 127 Date d'inscription   Statut Membre Dernière intervention   19
 
Une nouvelle piste : http://www.php.net/manual/fr/ref.exec.php

avec notamment proc_open et proc_terminate : si PHP est capable de lancer une appli externe et de la fermer, il doit aussi être capable de lancer un script PHP en boucle et de le stopper sur demande, non ?
0
celiane
 
http://www.ac-creteil.fr/reseaux/systemes/linux/debian/deb-tp-processus.html

pidof apache2

ps aux | grep apache
0