• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> 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