This problem is fairly very straightforward if one uses the psutil
package in python3
Consider the code snippet below.
import psutil
from collections import Counter
process_ctr = Counter()
for process in psutil.process_iter():
try:
process_cmd_list = process.cmdline()
for p in process_cmd_list:
process_ctr[p] += 1
except Exception:
continue
for pname, cnt in process_ctr.items():
print(pname, cnt)
Upon running this code, one will get the process name and count printed to stdout
Testing: I opened 3 terminals and I noticed this in the O/P: -bash 3
Sample O/P:
--pdf-renderer 2
--js-flags=--jitless 2
--renderer-client-id=657 1
--launch-time-ticks=75930041264 1
--renderer-client-id=658 1
--launch-time-ticks=76065123981 1
--seatbelt-client=151 4
--renderer-client-id=659 1
--launch-time-ticks=76065777110 1
--renderer-client-id=663 1
--launch-time-ticks=76077686392 1
--renderer-client-id=100 1
--launch-time-ticks=1656826210 1
--renderer-client-id=665 1
--launch-time-ticks=76250675532 1
--seatbelt-client=168 11
--renderer-client-id=666 1
--launch-time-ticks=76252057630 1
-bash 3
/System/Library/PrivateFrameworks/CoreFollowUp.framework/Versions/A/Support/followupd 1
/System/Library/PrivateFrameworks/PhotoAnalysis.framework/Versions/A/Support/photoanalysisd 1
/System/Library/CoreServices/ScopedBookmarkAgent 1
--renderer-client-id=672 1
--launch-time-ticks=76542560240 1
--renderer-client-id=676 1
--launch-time-ticks=76557205901 1
Note:
- The
try
, catch
is needed as psutil
cannot access some process details, as they are owned by the kernel.
Based on user feedback, adding some neat code, just to get the count for the process of interest.
import psutil
from collections import Counter
process_ctr = Counter()
def get_process_count(pname):
for process in psutil.process_iter():
try:
process_cmd_list = process.cmdline()
for p in process_cmd_list:
process_ctr[p] += 1
except Exception:
continue
for p, cnt in process_ctr.items():
if pname in p:
return cnt
if __name__ == '__main__':
cnt = get_process_count('qterminal')
print(f"The cnt is:{cnt}")