• Wieder einmal haben uns unsere Apfeltalker tolle Fotos zur Abstimmung eingesandt. Welches ist Euer Favorit? Stimmt mit ab! Hier geht es zur Abstimmung --> Klick
  • Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick

Prozess finden und beenden wenn vorhanden

maxiba

Erdapfel
Registriert
11.02.13
Beiträge
1
Hallo,

dies ist mein erster Beirag und hoffe man kann mir helfen.
Es ist momentan zum Verzweifeln, da ich nicht weiter komme in meinem Script.

Möchte gerne, dass mein Script abfragt, ob ein bestimmter Prozess läuft, wenn "Ja" soll er diesen beenden, wenn "nicht" dann soll er eine bestimmte *.app starten.

Momentan sieht mein Script so aus:

tell application "System Events"
set Processlist to name of eery process
if "firefox" is in ProcessList then
set ThePID ot unix id of process "firefox"
do shell script "kill -Kill" & ThePID
else

do shell script "applications/firefox.app/conetns/macos/firefox -p Test &> /dev/null &"

end if

end tell

wo ist mein Fehler, oder gibt es eine einfachere Shellscriptvariante?

Danke für die Hilfe.

Viele Grüße

Maxiba
 
Da sind ne Menge Schreibfehler drin...

So geht's in der Shell:

if [ "$(top -l1 |grep -o Firefox)" = "Firefox" ];
then killAll Firefox;
fi;
 
Bevor wir uns hier verheddern: Die Tippfehler sind im originalen Script nicht vorhanden?
eery ist "every" und applications/firefox.app/conetns/macos/firefox ist "applications/firefox.app/contents/macos/firefox" ?

/Edith sagt ich war zu langsam...
 
Ist bei Firefox doof, weil die bin lowercase ist.

Sowas sollte klappen:

Code:
set theApp to "Firefox"
if isRunning(theApp) then 
try
do shell script "killall " & quoted form of theApp
on error
do shell script "killall " & quoted form of (do shell script "echo " & theApp & "|awk '{print tolower($0)}'")
end
end



on isRunning(appName)
tell app "system events" to set appRunning to  exists (processes where name is appName)
return appRunning
end