Kill processus PHP sous serveur web linux

Fermé
new morning Messages postés 127 Date d'inscription lundi 13 août 2007 Statut Membre Dernière intervention 15 mai 2013 - 19 févr. 2009 à 04:48
 celiane - 17 juin 2009 à 22:35
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

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 mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 292
19 févr. 2009 à 08:47
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 lundi 13 août 2007 Statut Membre Dernière intervention 15 mai 2013 19
19 févr. 2009 à 09:37
VIVIVI, c'est bien ça.
0
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 292
19 févr. 2009 à 09:54
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 lundi 13 août 2007 Statut Membre Dernière intervention 15 mai 2013 19
19 févr. 2009 à 10:48
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 mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 292
19 févr. 2009 à 10:50
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 lundi 13 août 2007 Statut Membre Dernière intervention 15 mai 2013 19
19 févr. 2009 à 11:14
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 lundi 13 août 2007 Statut Membre Dernière intervention 15 mai 2013 19
20 févr. 2009 à 06:47
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
http://www.ac-creteil.fr/reseaux/systemes/linux/debian/deb-tp-processus.html

pidof apache2

ps aux | grep apache
0