Archives de la liste de diffusion ptaffgnu

Bash script, child pid

 
 

Bash script, child pid

  • Canada
  • GNU/Linux
  • Mutt
  • FOAF
  • PGP
(English follows)

J'ai cherché sans succès une manière simple via bash sous GNU/Linux de trouver
les process id des enfants d'un processus. Pourquoi je cherchais ça? Je
voulais changer la priorité d'une tâche de compilation (qui évidemment part
plein de sous-processus).

Me suis fâché et j'ai pondu un petit script.

Avec ce script, il suffit donc maintenant de trouver le numéro du processus
parent (`pstree -ph` vous aidera), et d'exécuter, supposant que le processus
parent porte le numéro 12345 :

renice 20 `childpid 12345`

Le script se trouve à la fin de ce message.

========================================================================

I searched without success an easy way to find the children pid of a process,
using bash on GNU/Linux. Why was I looking for such a thing? I wanted to
change priority of a compilation job (that of course spawns lots of
sub-processes).

I got frustrated then wrote a little script.

With this script, you only have to find the parent process id number
(`pstree -ph` will help you), and then execute, for a parent process number
12345:

renice 20 `childpid 12345`

========================================================================

childpid:
########################################################################
#!/bin/bash
# childpid: returns a space-delimited list of the children process id
# of a process. Note that it won't return the parent ID you fed it
#
# Usage: childpid PID

cpid () {
c=$( egrep "^PPid:[[:space:]]+$1$" /proc/[1-9]*/status 2>/dev/null \
| sed -e "s|/proc/\([0-9]\+\)/.*|\\1|" 2>/dev/null )
[ -z "$c" ] \
|| for i in $c; do echo -n "${i} "; cpid $i; done
}
cpid $1
########################################################################




--
--====|====--
--------================|================--------
Patrice Levesque
http://ptaff.ca/
wayne(à)ptaff.ca
--------================|================--------
--====|====--
--
Pièces jointes
 

 

Propulsé par xhtmail