Um ehrlich zu sein, denke ich, dass es definitiv einen besseren Weg gibt. Aber lassen Sie es als Memorandum
--Was Sie getan haben: Holen Sie sich die PID und töten Sie sie für immer in einer Endlosschleife
Ich möchte weiterhin einen bestimmten Prozess beenden, der wiederbelebt wird, selbst wenn ich ihn töte. Der Prozess scheint regelmäßig im Hintergrund zu beginnen. Umgebung: macOS Catalina
Öffnen Sie den Aktivitätsmonitor unter Anwendungen> Dienstprogramme und suchen Sie den Prozessnamen.
Nachdem Sie den Prozessnamen kennen, organisieren Sie, was Sie tun möchten. Was ich machen will; was ich vorhabe zu tun
darüber. Also als Prozess
--ps aux | grep ProcessName, um festzustellen, ob der Prozess ausgeführt wird, und um zu beenden, falls dies der Fall ist
Das scheint in Ordnung zu sein. Lassen Sie uns ein Skript schreiben
#!/bin/bash
while true;
do
#Geben Sie den Namen des Prozesses, den Sie beenden möchten, in ProcessName ein
TARGETPID=`ps aux | grep ProcessName | grep -v grep | awk '{print $2}'`
if [ -n "$TARGETPID" ]; then
`kill -9 ${TARGETPID}`
fi
sleep 5
done
Wie Sie sehen können, ist es nur eine Endlosschleife. (Irgendwie habe ich versucht, es alle 5 Sekunden zu schaffen)
--Überprüfen Sie den Prozess mit ps aux | grep ProcessName --grep -v grep schließt eigene Ergebnisse aus --Awk '{print $ 2}' extrahiert nur PID
Ich mache das Ich mache es alle 5 Sekunden, aber ich denke, es ist in Ordnung, wenn es um diese Art der Verarbeitung geht, auch wenn es alle 1 Sekunde oder nicht in Intervallen ist.
Operation Not Permitted
Diese Meldung wird möglicherweise angezeigt, wenn Sie versuchen zu töten. In einem solchen Fall können Sie versuchen, einmal mit sudo zu töten. (sudo kill oder sudo kill -9)
#Geben Sie die ID des Prozesses, den Sie beenden möchten, in PID ein
sudo kill PID
#Oder
sudo kill -9 PID
Wenn dies nicht funktioniert, können Sie möglicherweise töten, indem Sie sich als Mac-Root-Benutzer anmelden und als dieser Benutzer ausführen ...
Recommended Posts