MacBook M1上检测Chrome运行状态的Python代码异常求助
问题原因及解决办法
核心问题是MacOS上Chrome的进程名称和Windows平台不同,你代码里判断的chrome.exe是Windows环境下的进程名,而MacOS上Chrome的实际进程名称是Google Chrome(包含空格)。另外遍历系统进程时还需要处理权限问题,避免因无权限访问部分进程导致程序中断。
修改后的代码
import psutil for proc in psutil.process_iter(['name']): try: proc_name = proc.info['name'] if proc_name == 'Google Chrome': print('chrome is running now.') break # 找到目标进程后退出循环,避免重复输出 except (psutil.NoSuchProcess, psutil.AccessDenied): # 跳过已结束或无权限访问的进程 pass
关键说明
- 进程名差异:Windows平台可执行文件带
.exe后缀,但MacOS上Chrome的进程名就是应用的官方名称Google Chrome,没有后缀 - 权限处理:遍历系统进程时,部分系统进程可能无法被当前用户访问,捕获
NoSuchProcess和AccessDenied异常能保证程序正常运行 - 性能优化:
process_iter(['name'])指定只获取进程名称字段,比默认获取全部进程信息更高效
如果要兼容多平台,也可以用模糊匹配的方式,比如判断进程名是否包含Chrome:
if 'Chrome' in proc_name:
内容的提问来源于stack exchange,提问作者Smd Amaan
相关产品推荐
相关产品推荐

