Ich habe dieses Skript, das einfach tötet eine AppBASH - kommen seltsame Zeichen aus einem Rohr aus
KEY_NAME=/some/path
kill `ps -ef | grep $KEY_NAME | grep -v grep | awk '{ print $2 }'`
exit 0
Wenn ich den Kill-Befehl manuell als oneliner schreiben, als es funktioniert. Aber ich muss es als Skript ausführen, das nicht funktioniert. Also habe ich versucht, es zu debuggen und hier ist das Ergebnis
[[email protected] logs]$ bash -x ./script.sh
+ KEY_NAME=/some/path
++ ps -ef
++ grep /some/path
++ grep -v grep
++ awk '{ print $2 }'
+ kill $'20557\r'
: arguments must be process or job IDs
+ exit 0
Warum halte ich diese seltsamen Zeichen immer auf der kill
Linie? Wie kann ich sie loswerden?
Was passiert, wenn Sie Kopf -1 zu dieser Pipeline hinzufügen? – alberge
Haben Sie 'killall' probiert? Aber wenn du dein eigenes Programm tötest, [solltest du es vielleicht noch einmal überdenken] (http://mywiki.wooledge.org/ProcessManagement). – l0b0
@ l0b0 Ich habe nicht und ich werde wahrscheinlich nicht. Ich möchte nicht damit enden, mehr Prozesse zu erledigen, als ich eigentlich hätte tun sollen ... – user219882