• 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

Zählen von Prozessen mit dem gleichen Namen

BlackHawk

Jonagold
Registriert
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
 
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
 
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 …
 
ps -ax | grep -c Finder.app
kürzer schaff ichs nun aber wirklich nimmer. :-)
Gruß Pepi
 
Der gute Herr fragte nach einer Lösung in AppleScript.
 
Probier mal das allein:
count of "Finder"
Fällt Dir etwas auf?
 
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
 
Zuletzt bearbeitet:
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
 
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