本帖最后由 bobo2017365 于 2022-10-5 12:07 编辑
因为工作的关系,十一放假在家需要用向日葵远程链接公司的电脑做些事情,可有的时候做其他事情的时候,容易忘记断开向日葵连接。
向日葵会保持远程连接,导致Mac无法自动睡眠,风扇就一直呼呼呼的转,一模盖子有些发热。
时间长了,肯定是对Mac不利的。为了保护我的Mac,我就在想写个程序,检查Mac的盖子合上了之后,就立即启动程序杀掉向日葵进程,代码就来了
具体的思路:
1. 向日葵APP的进程名包含关键字SunloginClient.app,那么只要抓取到含有这个进程的关键字就直接用shell kill
2. 设定定时任务执行此Python
[Python] 纯文本查看 复制代码 import subprocess
import re
def display_status():
POWER_MGMT_RE = re.compile(r'IOPowerManagement.*{(.*)}')
output = subprocess.check_output(
'ioreg -w 0 -c IODisplayWrangler -r IODisplayWrangler'.split())
status = POWER_MGMT_RE.search(output.decode("utf8")).group(1)
status_code = dict((k[1:-1], v) for (k, v) in (x.split('=') for x in
status.split(',')))
current_status = status_code.get("CurrentPowerState", "")
return current_status
if display_status() == "4":
print("closed")
subprocess.run("ps aux | awk '/SunloginClient.app/{print $2}' | xargs kill -9", shell=True)
大家也可以利用这个思路,去干些别的事情,比如想在盖子合上了之后,直接调用关机命令什么的都可以 |