75427
Goto Top

System-Prozess über Prozess-Namen via shell script beenden

Ich suche Hilfe bei der Erstellung eines Shellscriptes für den MAC (Betriebssystem MAC OS X 10.5).
Ein bestimmter Prozess namens "coreaudiod" soll beim Systemstart oder nach Beenden des Ruhezustandes beendet werden. Dass dieser vom System automatisch wieder gestartet wird, ist sogar erwünscht.

Ich habe bei der Erstellung von shell scripts sehr wenig Erfahrung und habe zum Thema folgendes recherchiert ohne jedoch mein Ziel bislang erreicht zu haben.

1.) Mit Kill (PID) {PID ... Prozeß-ID} wird der Prozeß beendet, aber die Prozeß-ID wird dynamisch vergeben und ändert sich nach jedem Systemstart bzw. nach jedem Ruhezustand.
Der Prozess soll daher über den Prozessnamen selektiert werden.
2.) Man muß Super User sein, um den System-Prozeß beenden zu können. Mit dem Befehl "sudo" konnte ich eine Super User shell script starten und darin den Prozeß killen (de.wikipedia.org/wiki/Sudo). Man wird nach Aufruf des Befehls zur Eingabe des Passworts aufgefordert.
Die Eingabe eines Passwortes, um den Prozess beenden zu können, soll nicht erforderlich sein, da das Script vollkommen autark abgearbeitet werden soll.
{3.) Mit dem Daemon sleepwatcher 2.0.5 soll das script dann gestartet werden. Mit sleepwatcher habe ich bereits positive Erfahrungen gesammelt, sodaß der Aufruf des Scriptes keine Probleme bereiten sollte.}

Für jegliche Hilfe zum Thema bin ich dankbar.

Viele Grüße
Schlumu

Content-Key: 109207

Url: https://administrator.de/contentid/109207

Printed on: April 26, 2024 at 22:04 o'clock

Member: godlie
godlie Feb 17, 2009 at 10:59:33 (UTC)
Goto Top
Ad 1) Damit bekommst du eine od. mehrer PID's
 ps jax | grep "pager" | cut -d " " -f 1  

ad 2) Die Prozesse jene du selbst ausführst kannst auch du beenden afaik
bezüglich sudo ja das könnte funktionieren, du musst den auszuführenden user natürlich in die /etc/sudoers eintragen

have fun
Mitglied: 75427
75427 Feb 18, 2009 at 00:11:01 (UTC)
Goto Top
Hallo Godlie,

vielen Dank für die Hilfestellung.

Mit der Befehlsfolge: "ps jax | grep "coreaudiod" | cut -d ' ' -f 7 | head -1" erhalte ich nun die gewünschte Prozeß-ID.

Wie jedoch übergebe ich diese an den Befehl KILL ?

kill ps jax | grep "coreaudiod" | cut -d ' ' -f 7 | head -1 oder
kill (ps jax | grep "coreaudiod" | cut -d ' ' -f 7 | head -1)

funktionieren leider nicht.

Aber ich bin nah dran oder?

Besten Dank und
viele Grüße

Schlumu
Member: godlie
godlie Feb 18, 2009 at 06:21:23 (UTC)
Goto Top
Du bist schon fast dran face-smile

 kill `ps jax | grep 'vim' | cut -d ' ' -f 1 | head -1`