Bereiche
News
Rewind
Tipps & Berichte
Forum
Galerie
Journals
Events
Umfragen
Themenwoche
Kleinanzeigen
Interaktiv
Anmelden
Registrierung
Zu allen empfangenen Nachrichten
Suche...
Zur erweiterten Suche
Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum
>
Software
>
ein Programm beim hochfahren beenden
ein Programm beim hochfahren beenden
verstaerker
22.12.19
13:29
Hintergrund:
ich hab hier ein Programm (cpvnmd Copperlan-Dienst) das manchmal nach dem neustarten 100% CPU verbraucht.
Das Programm wird nicht mehr weiterentwickelt und die Entwickler helfen auch nicht mehr.
Lösungsansatz:
Da ich zu faul bin jedes Mal zu checken ob das Programm vielleicht zuviel CPU verbraucht dachte ich ich könne es einfach killen beim hochfahren. Da es nachdem beenden automatisch wieder startet, total easy.
Also hab ich mir einfach n Automatorprogramm erstellt das folgendens shell-script ausführt:
killall cpvnmd
das Problem ist das cpvnmd als root läuft, ich muss also
sudo killall cpvnmd
ausführen.
Dabei fragt es nach dem Passwort, das geht innerhalb des Automators aber nicht, also auf Applescript umgeschwenkt
on run {input, parameters}
do shell script "sudo killall cpvnmd" with administrator privileges
return input
end run
okay funktioniert, aber leider fragt as script immer nach dem Admin-Passwort. Das nervt mich auch.
Jetzt zur Frage:
Kennt ihr n weg wie man das was ich vorhaben bewerkstelligen kann ohne das ich n Passwort eingeben muss?
Hilfreich?
0
Kommentare
Peter Eckel
22.12.19
14:19
Erstens: Was spricht dagegen, das Ding aus dem System zu entfernen, damit es gar nicht erst startet? Brauchst Du es beim Hochfahren und danach nicht mehr?
Zweitens: Man kann sudo so konfigurieren, daß es
bestimmte Kommandos
auch ohne Paßworteingabe erlaubt. Genaugenommen kann man es auch so konfigurieren, daß es
alle
Kommandos auch ohne Paßworteingabe erlaubt, aber das wäre, um es freundlich auszudrücken, unglaublich dumm
Der Schlüssel dazu ist die Datei
/etc/sudoers
, bzw. das Verzeichnis
/etc/sudoers.d
. Ich bevorzuge die letztere Variante, auch wenn sie etwas umständlicher ist und auch ein gewisses Risiko mit sich bringt, das System in einen unerfreulichen Zustand zu versetzen. Dazu später.
/etc/sudoers
sollte immer mit dem Kommando
sudo visudo
editieren. Das bietet einen gewissen Schutz dagegen, sich das System zu demolieren, denn wenn die Datei kaputtkonfiguriert ist (was, wie der Autor dieser Zeilen gern bestätigen kann, ziemlich einfach ist), dann hat man ein echtes Problem, weil
sudo
dann nicht mehr geht.
Also Vorarbeit: Ein Terminalfenster öffnen und eine Root-Shell darin aufmachen (mittels
sudo -i
). Das Fenster dann beiseitelegen, für den Notfall. Oder grundsätzlich nur mit
visudo
arbeiten. You have been warned.
So, jetzt zum eigentlichen Thema. Entweder in der Datei
/etc/sudoers
oder in einer neu anzulegenden Datei im Verzeichnis
/etc/sudoers.d
, z.B.
/etc/sudoers.d/killall-cpvnmd
(Achtung: Der Dateiname darf keinen Punkt enthalten!) folgende Zeilen hinzufügen:
Cmnd_Alias KILL_CPVNMD = /usr/bin/killall cpvnmd
%admin ALL = (root) NOPASSWD: KILL_CPVNMD
EDIT: ACHTUNG: Das sind genau zwei Zeilen, der Umbruch bei MTN ist ... doof!
Eine fängt mit
Cmnd_Alias
an, eine mit
%admin
.
Jetzt kannst Du aus einem normalen Terminalfenster (nicht dem mit der Root-Shell) testen, ob es geklappt hat:
pete@ardbeg ~ % sudo -l
Matching Defaults entries for pete on ardbeg:
[...]
User pete may run the following commands on ardbeg:
(ALL) ALL
[...]
(root) NOPASSWD: /usr/bin/killall cpvnmd
pete@ardbeg ~ % sudo killall cpvnmd
No matching processes were found
Bingo.
Wenn
Du es - wie ich wirklich empfehlen würde - in eine eigene Datei in
/etc/sudoers.d
einbaust und wenn das schiefgeht - das merkst Du schon bei
sudo -l
im obigen Test - dann kannst Du Dein Root-Shell-Fenster nehmen und es wieder geradebiegen. Wenn nicht - viel Glück (geht auch, z.B. vom Finder aus bzw. im Recovery Mode über das Terminal. Macht aber keinen Spaß).
„Ceterum censeo librum facierum esse delendum.“
Hilfreich?
+2
HumpelDumpel
22.12.19
14:46
Passwort im script ist natürlich nicht ganz ohne, aber gehen tut das
do shell script "sudo killAll cpvnmd" password "XXX" with administrator privileges
Hilfreich?
-1
Peter Eckel
22.12.19
14:58
HumpelDumpel
Passwort im script ist natürlich nicht ganz ohne,
Doch. Ohne Hirn.
Laßt das bleiben!
„Ceterum censeo librum facierum esse delendum.“
Hilfreich?
+3
camaso
22.12.19
15:04
Oder Du installierst AppPolice und beschränkst die CPU für die App auf den gewünschten Wert:
Hilfreich?
0
Peter Eckel
22.12.19
15:21
camaso
Oder Du installierst AppPolice und beschränkst die CPU für die App auf den gewünschten Wert:
Das hilft aber nur dann, wenn der Daemon in dem Zustand auch noch irgendetwas vernünftiges tut und sich nicht nur mit sich selbst beschäftigt. Wenn das Biest 100% CPU frißt und sich durch Killen (und das anschließende Neustarten durch
launchd
) wieder befrieden läßt, wird es vermutlich nicht viel helfen, ihm einfach die Ressourcen zu entziehen.
„Ceterum censeo librum facierum esse delendum.“
Hilfreich?
+1
rmayergfx
22.12.19
15:27
verstaerker
Hintergrund:
ich hab hier ein Programm (cpvnmd Copperlan-Dienst) das manchmal nach dem neustarten 100% CPU verbraucht.
Das Programm wird nicht mehr weiterentwickelt und die Entwickler helfen auch nicht mehr.
Naja, das Problem hast du ja nicht erst seit kurzem:
und da der Entwickler im Forum ja immer noch fleissig antwortet, einfach mal nachfragen, wie die Dienste gestartet werden und diese dementsprechend so einstellen, das diese NICHT automatisch beim Booten gestartet werden. Schon mal in die Startitems unter dem User geschaut ? Also warum mit irgendwelchen Gegenscripten arbeiten, wenn man einfach die Wurzel des Übels entfernen kann ?
PS: Bitte mal angewöhnen das macOS mit anzugeben das installiert ist!
„Der Computer soll die Arbeit des Menschen erleichtern, nicht umgekehrt !“
Hilfreich?
0
Wiesi
22.12.19
15:30
Da, das Ding offensichtlich nur direkt nach dem Neustart rotiert, würde ich einen verzögerten Start einrichten. Wie das geht, weiß ich nicht (toller Rat).
„Everything should be as simple as possible, but not simpler“
Hilfreich?
-4
verstaerker
22.12.19
16:58
rmayergfx
verstaerker
Hintergrund:
ich hab hier ein Programm (cpvnmd Copperlan-Dienst) das manchmal nach dem neustarten 100% CPU verbraucht.
Das Programm wird nicht mehr weiterentwickelt und die Entwickler helfen auch nicht mehr.
Naja, das Problem hast du ja nicht erst seit kurzem:
und da der Entwickler im Forum ja immer noch fleissig antwortet, einfach mal nachfragen, wie die Dienste gestartet werden und diese dementsprechend so einstellen, das diese NICHT automatisch beim Booten gestartet werden. Schon mal in die Startitems unter dem User geschaut ? Also warum mit irgendwelchen Gegenscripten arbeiten, wenn man einfach die Wurzel des Übels entfernen kann ?
Er antwortet eben nicht mehr.
das ganze wird über den launchDaemon in /Library/LaunchDaemons gestartet
ich nehme mal raus.. ma sehen ob das überhaupt nötig ist
Hilfreich?
0
verstaerker
22.12.19
17:23
verstaerker
das ganze wird über den launchDaemon in /Library/LaunchDaemons gestartet
ich nehme mal raus.. ma sehen ob das überhaupt nötig ist
naja man brauchts schon um connections zu bearbeiten ... und später einfach starten , scheint nicht zu reichen.
Ich werd mir also mal die Methode anschauen das ohne pw zu killen
Hilfreich?
0
verstaerker
22.12.19
17:42
Peter Eckel
Erstens: Was spricht dagegen, das Ding aus dem System zu entfernen, damit es gar nicht erst startet? Brauchst Du es beim Hochfahren und danach nicht mehr?
So, jetzt zum eigentlichen Thema. Entweder in der Datei
/etc/sudoers
oder in einer neu anzulegenden Datei im Verzeichnis
/etc/sudoers.d
, z.B.
/etc/sudoers.d/killall-cpvnmd
(Achtung: Der Dateiname darf keinen Punkt enthalten!) folgende Zeilen hinzufügen:
Cmnd_Alias KILL_CPVNMD = /usr/bin/killall cpvnmd
%admin ALL = (root) NOPASSWD: KILL_CPVNMD
EDIT: ACHTUNG: Das sind genau zwei Zeilen, der Umbruch bei MTN ist ... doof!
Eine fängt mit
Cmnd_Alias
an, eine mit
%admin
.
das funktioniert super. Vielen Dank!
P.S.
ich kann das nicht aus dem System entfernen, die Funktionalität wird benötigt
Hilfreich?
0
rmayergfx
22.12.19
18:15
Du sollst es ja auch nicht aus dem System entfernen sondern nur bei Bedarf starten:
„Der Computer soll die Arbeit des Menschen erleichtern, nicht umgekehrt !“
Hilfreich?
0
verstaerker
22.12.19
18:35
rmayergfx
Du sollst es ja auch nicht aus dem System entfernen sondern nur bei Bedarf starten:
danke, so ginge es wohl auch ... aber die killAll-lösung tut auch was sie soll
Hilfreich?
0
Kommentieren
Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.
Musikbranche verklagt KI-Anbieter
Qualitätsprobleme bei MacBook-Displays: Apple t...
Update-Abend: macOS 15.1.1, iOS 18.1.1, iPadOS ...
Apple TV+: Strategiewechsel?
TechTicker
iMac M4 angekündigt
Eskalationskurs: ARM kündigt Qualcomm die Desig...
Apple aktualisiert Zubehör: Magic Mouse, Magic ...