Tu peux parser le nom du soft, par exemple dans /proc/*/cmdline sur tous les pid. Est-ce que pidoff ne ferait pas un truc comme ça?
Hmmm, l'idée est très bonne mais il semble que l'utilisateur www-data ne puisse accéder à ces fichiers :
[Mon Mar 18 16:22:50.620046 2019] [php7:error] [pid 14756] [client 192.168.42.42:43000] PHP Fatal error: Uncaught UnexpectedValueException: RecursiveDirectoryIterator::__construct(/proc/tty/driver): failed to open dir: Permission denied in /var/www/html/test/test.php:14\nStack trace:\n#0 [internal function]: RecursiveDirectoryIterator->__construct('/proc/tty/drive...', 0)\n#1 /var/www/html/test/test.php(14): RecursiveDirectoryIterator->getChildren()\n#2 {main}\n thrown in /var/www/html/test/test.php on line 14
Testé avec le code suivant :
<?php$chkSoftwareName=array("syncthing","apache2");$path="/proc/";$subfile="cmdline";if(is_array($chkSoftwareName)){$checkOfAllSoft=true;foreach($chkSoftwareNameas$softwareName){$checkOfThisSoft=false;$di=newRecursiveDirectoryIterator($path);$cpt=0;$lenght=count(newRecursiveIteratorIterator($di));foreach(newRecursiveIteratorIterator($di)as$filename=>$file){if(is_dir($filename.'/'.$subfile)){if(preg_match($softwareName,fgets($filename.'/'.$subfile))){echo$filename.'/'.$subfile.' <br/>';$checkOfThisSoft=true;}}if($cpt==$lenght-1&&$checkOfThisSoft==false){// last tab$checkOfAllSoft=false;}$cpt++;}}if(!$checkOfAllSoft){echo"un des loulous n'est pas lancé !";}}?>
[^] # Re: man pidof
Posté par voxdemonix . En réponse au message [Solved] [Optimisation] PHP/Bash tester le plus rapidement si un process est actif. Évalué à 1. Dernière modification le 18 mars 2019 à 16:30.
Hmmm, l'idée est très bonne mais il semble que l'utilisateur www-data ne puisse accéder à ces fichiers :
Testé avec le code suivant :