1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Zählen von Prozessen mit dem gleichen Namen

Dieses Thema im Forum "AppleScript" wurde erstellt von BlackHawk, 19.08.08.

  1. BlackHawk

    BlackHawk Jonagold

    Dabei seit:
    11.08.08
    Beiträge:
    22
    Also habe folgndes Problem, für das ich wahrscheinlich einfach zu dumm bin.
    Also will ne Komandozeile, die mir gibt, z.B. Wie viele Finder offen sind wenn es geht.

    Habe folgendes was irgendwie nicht geht:
    Code:
    tell application "System Events"
        set NameList to get name of every process
        set Hallo to (count of "Finder") of NameList
    end tell
    

    Das lustige ist ja aber dass ich eine 6 bekomme und 6 Finder kann man nicht ooden haben

    Danke für eure Lösungen

    Mit freundlichen Grüßen
    BlackHawk
     
  2. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    ps -ax | awk '{print $4}' | grep "Finder" | uniq -c | awk '{print $1}'

    Geht sogar noch kürzer
    ps -ax | grep Finder | uniq -c -f 3 | awk '{print $1}'

    Und ja, ich bin einigermaßen sicher, daß man das noch kürzer lösen kann.
    Gruß Pepi
     
  3. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    Man kann mehrere Finder auf haben, entweder durch verschiedene User, aber auch mit einem einzigen (Binary direkt aufrufen).
    ps -ax | grep -i "Finder.app" | grep -v "grep" | wc -l

    Alle zählen Prozesse, die Finder.app enthalten außer demjenigen, der danach gerade sucht und auch in der Liste daher auftaucht.

    Nur anzeigen:
    ps -ax | grep -i "Finder.app" | grep -v "grep"

    Das kann man zwar auch mit dem "Activity Monitor.app", aber warum auch …
     
  4. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    ps -ax | grep -c Finder.app
    kürzer schaff ichs nun aber wirklich nimmer. :)
    Gruß Pepi
     
  5. kauan

    kauan Stina Lohmann

    Dabei seit:
    31.12.05
    Beiträge:
    1.043
    Der gute Herr fragte nach einer Lösung in AppleScript.
     
  6. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    Probier mal das allein:
    count of "Finder"
    Fällt Dir etwas auf?
     
  7. kauan

    kauan Stina Lohmann

    Dabei seit:
    31.12.05
    Beiträge:
    1.043
    F
    i
    n
    d
    e
    r

    macht sechs :)
     
  8. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    do shellscript 'ps -ax | grep -c Finder.app'
    Gruß Pepi
     
  9. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    Wie MacMark schon aufzeigte, liefert das aber ein falsches Ergebnis, da auch der laufende grep-process den String enthält und somit mitgezählt würden.

    do shell script "ps -ax | grep Finder.app | grep -cv grep"

    aber das ist auch Mist, weil's einen Fehler liefert, wenn kein Vorkommen. Also MacMarks Lösung ist schon die Königslösung:

    last word of (do shell script "ps -ax | grep -i \"Finder.app\" | grep -v \"grep\" | wc -l") as integer
     
    #9 CloneOfMyself, 20.08.08
    Zuletzt bearbeitet: 20.08.08
  10. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    Ich habe auch vermutet, daß man den grep Befehl extra ausnehmen muß und habe mich daher sehr gewundert, daß der trotzdem korrekt zählt. Es werden auch die richtigen Prozesse gezählt. Wie gesagt, ich hätte es auch nicht vermutet, aber meine Tests haben ergeben, daß das Ergebnis korrekt ist. (Ich hab natürlich mit einem Prozessnamen getestet der auch tatsächlich mehr als eine Instanz zurückliefert.)
    Gruß Pepi
     
  11. BlackHawk

    BlackHawk Jonagold

    Dabei seit:
    11.08.08
    Beiträge:
    22
    Habe es jetzt ein bischen anders als ihr aber mein Fehler war das whose (wusste davor noch dichts davon)

    tell application "System Events"
    set isRunning to (count of (every process whose name is "Finder"))
    end tell

    Bedanke mich mal wieder für die tolle Hilfe von euch

    MfG BlackHawk
     

Diese Seite empfehlen