• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> 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
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Da sind ne Menge Schreibfehler drin...

So geht's in der Shell:

if [ "$(top -l1 |grep -o Firefox)" = "Firefox" ];
then killAll Firefox;
fi;
 

wheeler

Himbeerapfel von Holowaus
Registriert
29.04.08
Beiträge
1.257
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...
 

fyysh

Schweizer Glockenapfel
Registriert
25.01.10
Beiträge
1.386
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