Verwenden Sie pgrep
stattdessen:
pgrep -g 18322
Von man pgrep
:
-g, --pgroup pgrp,... Only match processes in the process group IDs listed. Process group 0 is translated into pgrep's or pkill's own process group.
Alternativ können Sie die ps
Ausgabe auf einfachere Weise parsen :
ps xh -o pgrp,pid | awk '$1==18322'
Oder vereinfachen Sie einfach Ihren (unnötig komplexen) ursprünglichen Perl-Ansatz:
ps xh -o pgrp,pid | perl -lane 'print $F[1] if $F[0] eq 5592'
Oder einfach nur grep
:
ps xh -o pgrp,pid | grep -Po '\s*5592\s*\K.+'