• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[solved] Prozesse beenden per Pipe

Hallo allerseits,

während des Troubleshottings von cacti fand ich diverse hänge Prozesse

Code:
cacti 21072 1 0 14:11 ? 00:00:00 /usr/bin/php -q /tools/cacti_1107/cmd.php 0 133
cacti 24150 1 0 14:16 ? 00:00:00 /usr/bin/php -q /tools/cacti_1107/cmd.php 0 133
cacti 27468 1 0 14:21 ? 00:00:00 /usr/bin/php -q /tools/cacti_1107/cmd.php 0 133
cacti 30804 1 0 14:26 ? 00:00:00 /usr/bin/php -q /tools/cacti_1107/cmd.php 0 133

Mittels einer Pipe konnte ich die Prozess-IDs filtern

ps -ef | grep "cmd.php" | tr -s " " | cut -d" " -f2

Code:
21072
24150
27468
30804

An dem Punkt, die Porzess-IDs dem kill zu übergeben bin ich dann aber gescheitert. Hat jemand eine Idee ???
 
Einfach mit xargs arbeiten. In deinem Beispiel wäre das:
Code:
ps -ef | grep "cmd.php" | tr -s " " | cut -d" " -f2 | xargs echo kill -15
Zur Sicherheit habe ich ein zusätzlich ein echo hinten reingesetzt. Für einen "Echtlauf" ist das echo natürlich zu entfernen.

Außerdem bitte überlegen, ob der grep wasserdicht ist, oder nicht auch unter Umständen ungewünschte Prozesse findet.
 
Noch eine Anmerkung zum grep: Ein Punkt steht beim grep für ein beliebiges Zeichen.

Code:
prompt> echo 1x2 | grep "1.2"
1x2
prompt> echo 1x2 | grep "1\.2"
prompt> echo 1.2 | grep "1\.2"
1.2

Unter anderem deswegen meinte ich vorhin, man sollte überlegen, ob der grep das macht, was er soll...
 
Oben