kill Kommando im system-Call

24/06/2008 - 16:05 von Mätes | Report spam
Hallo,

ich möchte aus einem C-Programm ein Shell-Script aufrufen, dass einige
Prozesse beendet (kill).

Der Aufruf funktioniert leider nicht und endet mit einer Fehlermeldung
auf der Konsole.

Hier das Script:
#! /bin/ksh
kill -9 `ps -elf | grep PSMService | grep -v grep | awk '{print $4}'`
kill -9 `ps -elf | grep omniNames | grep -v grep | awk '{print $4}'`
kill -9 `ps -elf | grep EventService | grep -v grep | awk '{print
$4}'`

Das Script wird über den system-Call innerhalb des C-Programms
aufgerufen:
system("/home/moltenbe/test/kill_Services.ksh");

Es erscheint auf der Konsole die Fehlermeldung:
Usage: kill [-l] [-n signum] [-s signame] job ...
Or:job ...
killjob ...
[job ...
optionsjob ...
] -l [arg ...]

Ein Aufruf auf der Konsole funktioniert korrekt.

Was mache ich hier falsch? Wie würdet ihr das realisieren?

Sorry, ich bin leider noch nicht so fit, was die Programmierung unter
Unix angeht.

Gruß
Martin
 

Lesen sie die antworten

#1 Achim Peters
24/06/2008 - 16:29 | Warnen spam
Màtes schrieb:

ich möchte aus einem C-Programm ein Shell-Script aufrufen, dass einige
Prozesse beendet (kill).

Der Aufruf funktioniert leider nicht und endet mit einer Fehlermeldung
auf der Konsole.

Hier das Script:
#! /bin/ksh
kill -9 `ps -elf | grep PSMService | grep -v grep | awk '{print $4}'`

Es erscheint auf der Konsole die Fehlermeldung:
Usage: kill [-l] [-n signum] [-s signame] job ...

Ein Aufruf auf der Konsole funktioniert korrekt.



Dann àndere doch zu Debugzwecken mal das Script in
echo `ps -elf | grep PSMService | grep -v grep`
...

und finde raus, warum entweder das erste grep nichts findet, oder das
awk '{print $4}' nichts ausgibt, obwohl das erste grep etwas findet
(außer sich selbst).

Bye
Achim

Ähnliche fragen