Ich muss wissen, wie man einen Befehl oder ein Skript schreibt, um die Prozesse CCLibrary und CCXProcess zu beenden. Sie sind Teil der Creative Cloud von Adobe und seit ihrem letzten Update werden sie immer wieder neu gestartet und lassen meine CPU zu 100 % laufen.
Bis ein Fix herauskommt, hätte ich gerne eine schnelle Möglichkeit, es zu beenden, ohne den Aktivitätsmonitor durchlaufen zu müssen.
Wenn ich es versuche
sudo killall CCLibrary
Ich erhalte "Es wurden keine passenden Prozesse gefunden".
Ich kann ps -ef verwenden, um die PID-Nummer (z. B. 9548) zu finden. Ich kann sie grep, z
ps -ef | grep CCLibrary.app
die zwei Aktivitäten zurückgibt, die CCLibrary und das grep selbst.
$ ps -ef|grep CCLibrary
501 9621 1 0 12:18pm ?? 51:51.71 /Applications/Utilities/Adobe Creative Cloud/CCLibrary/CCLibrary.app/Contents/MacOS/../libs/node /Applications/Utilities/Adobe Creative Cloud/CCLibrary/CCLibrary.app/Contents/MacOS/../js/server.js
501 9818 9407 0 1:10pm ttys001 0:00.00 grep CCLibrary
Dann kann ich anhand der PID-Nummer "töten".
Aber wie kann ich ein Skript schreiben, um diese PID als Variable zu finden und sie dann zu beenden?
Anstatt die Prozesse kontinuierlich zu beenden, gibt es eine Möglichkeit, den Creative Cloud-Anwendungsmanager von Adobe zu deinstallieren, der in diesem Thread erwähnt wird .
Laden Sie Adobe Creative Cloud Cleaner von diesem Link herunter: http://download.macromedia.com/SupportTools/Cleaner/mac/AdobeCreativeCloudCleanerTool.dmg
Wählen Sie dann NUR Creative Cloud aus
Und Ihre Fans werden endlich verstummen. Die anderen Apps funktionieren noch.
Ich spare mir das „Warum das eine schlechte Idee ist“ nach der Antwort auf, aber hier sind einige Tricks, die Sie anwenden könnten. Da nicht jeder mit CC testen kann, wählen wir für dieses Beispiel Safari aus:
ps -ef | grep "Safari "
Zuerst füge ich nach dem Programmnamen ein Leerzeichen hinzu, um sicherzustellen, dass es kein Teil des Pfads ist. Verwenden Sie als Nächstes eckige Klammern um ein Zeichen des Prozessnamens, die verhindern, dass grep sich selbst findet. (Es gibt wahrscheinlich einen eleganteren Weg, dies zu tun, aber dieser Hack funktioniert für mich in Ordnung.)
ps -ef | grep "[S]afari "
Dadurch passt der Befehl grep nicht zu Safari - die Klammern würden Sie zum Beispiel nach entweder oder suchen [SZ]afari
und abgleichen lassen. Wir wollen nur Mist bauen und keine alternativen Zeichen für Position 1 finden.Safari
Zafari
grep
ps -ef | grep "[S]afari " | awk '{print $2}'
Entfernen Sie das zweite durch Leerzeichen getrennte Wort, um die PID zu erhalten. So sieht das alles in einer Sitzung aus, um die von uns verwendeten Befehle zu debuggen:
mac:~ me$ ps -ef | grep Safari
501 300 1 0 Wed06PM ?? 45:03.88 /Applications/Safari.app/Contents/MacOS/Safari -psn_0_40970
501 520 1 0 Wed06PM ?? 1:08.95 /usr/libexec/SafariCloudHistoryPushAgent
501 590 1 0 Wed06PM ?? 1:39.35 /System/Library/PrivateFrameworks/SafariSafeBrowsing.framework/com.apple.Safari.SafeBrowsing.Service
501 608 1 0 Wed06PM ?? 0:10.31 /System/Library/PrivateFrameworks/SafariShared.framework/Versions/A/XPCServices/com.apple.Safari.SearchHelper.xpc/Contents/MacOS/com.apple.Safari.SearchHelper
501 2476 1 0 Wed06PM ?? 0:01.56 /System/Library/PrivateFrameworks/SafariShared.framework/Versions/A/XPCServices/com.apple.Safari.ImageDecoder.xpc/Contents/MacOS/com.apple.Safari.ImageDecoder
501 38802 1 0 Thu01PM ?? 0:02.41 /usr/libexec/SafariNotificationAgent
501 92847 90892 0 7:27AM ttys013 0:00.00 grep Safari
mac:~ me$ ps -ef | grep "Safari "
501 300 1 0 Wed06PM ?? 45:04.31 /Applications/Safari.app/Contents/MacOS/Safari -psn_0_40970
501 92875 90892 0 7:27AM ttys013 0:00.01 grep Safari
mac:~ me$ ps -ef | grep "[S]afari "
501 300 1 0 Wed06PM ?? 45:04.57 /Applications/Safari.app/Contents/MacOS/Safari -psn_0_40970
mac:~ me$ ps -ef | grep "[S]afari " | awk '{ print $2 }'
300
mac:~ me$ echo kill `ps -ef | grep "[S]afari " | awk '{ print $2 }'`
kill 300
Beachten Sie, dass ich früher echo
nur die Syntax des Befehls übergeben habe. Wenn ich ihn nicht wiederholt hätte, hätte der Kill-Befehl das Safari-Programm, mit dem ich diese Antwort schreibe, tatsächlich ausgeführt und beendet.
¯\_(ツ)_/¯
Also, jetzt sollten Sie bequem ein einzeiliges Skript schreiben, um den einen Prozess (hoffentlich) zu beenden, und wir kommen zum Teil der Antwort mit der schlechten Idee. Es wäre besser, es zu verwenden, killall server.js
wenn Sie nicht damit rechnen, andere Server auszuführen, die Sie nicht töten möchten.
awk
Befehl abzielt?ps
um dann Maßnahmen zu ergreifen. Gelegentlich habe ich es trotzdem getan, aber ich habe alles in Syslog protokolliert und das Chaos so schnell wie möglich beseitigt. Pingen Sie mich im Ask Different Chat und wir können einen weiteren Stich machen.
Fahrrad
Fahrrad