简体   繁体   中英

How to check in Mac OSX with Python if a process is RUNNING or not

I am using python 2.7 on mac osx 10.9.

I want to check whether, a process is running or not. I looked into this Q&A , but result is not desired.

I want to check, whether any process of a particular name is running or not

Try this. If it returns a process id then you have the process running. Use your process name instead of firefox .

# Python2
import commands
commands.getoutput('pgrep firefox')

As commands module is no longer in python 3x, We can receive the process id using subprocess module here.

# Python3
import subprocess
process = subprocess.Popen('pgrep firefox', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
my_pid, err = process.communicate()

Here my_pid will be process id .

Use module psutil . For example:

import psutil

# ...    

if pid in psutil.get_pid_list():
    print(pid, "is running")

Edit: You can get pids and names of all running processes like this:

for p in psutil.process_iter():
    if p.name == 'firefox':
        print("firefox is running")
        break

I was just trying the above code and it did not work for me using python 2.7 Haven't tried the code on python 3. Posting the updated code, it might help someone

for p in psutil.process_iter():  # iterate through all running processes 
    if p.name() == 'firefox':
        print("firefox is running")
        break

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM