linux shell: Wie liest man ein Befehlsargument aus einer Datei?

7

Ich habe Prozess-ID in einer Datei "pid" Ich würde es gerne töten.

Etwas wie:

%Vor%

Ich habe es versucht:

%Vor%

aber es funktioniert nicht. Ich habe auch xargs ausprobiert, kann mich aber nicht darum kümmern.

    
Igor Katkov 10.11.2009, 22:46
quelle

5 Antworten

12

Lassen Sie mich alle Antworten zusammenfassen

%Vor%     
Igor Katkov 11.11.2009, 16:37
quelle
13

Macht

%Vor%

Arbeit für Sie?

    
sdtom 10.11.2009 22:49
quelle
3

meine Vorliebe ist

%Vor%

das wird für jeden Befehl in den Backticks funktionieren.

    
BCS 10.11.2009 22:50
quelle
2

kill -9 $(cat pid) oder cat pid | xargs kill -9 funktionieren beide

    
Chris AtLee 10.11.2009 22:53
quelle
2

Du solltest langsam anfangen und dann zu den schweren Sachen gehen, um den Prozess zu beenden, wenn er nicht gut spielen will.

Ein SIGKILL-Signal (-9) kann nicht abgefangen werden, und das bedeutet, dass alle vom Prozess gehaltenen Ressourcen nicht bereinigt werden.

Versuchen Sie zuerst, einen Kill SIGTERM (-15) zu verwenden, und prüfen Sie dann noch, ob der Prozess noch vorhanden ist, indem Sie eine Kill-0 $ (cat pid) ausführen. Wenn es immer noch herumhängt, dann klimpern Sie es mit -9.

SIGTERM kann von einem Prozess abgefangen werden und jeder ordnungsgemäß geschriebene Prozess sollte einen Signalhandler haben, um das SIGTERM abzufangen und dann seine Ressourcen zu bereinigen, bevor es beendet wird.

    
Rob Wells 10.11.2009 23:00
quelle

Tags und Links