MacOS 自启动执行脚本比 Linux 还是蛋疼不少。

加上自己是乞丐 8G 内存的 Pro,自动清理内存还是非常有必要的。

实际执行代码 (这里默认存放地址:~/Documents/autostart.sh)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

#!/bin/bash

# 扩展 PATH 以支持用户安装的命令
export PATH=/usr/local/bin:$PATH

# 内存过低自动清理
while true; do
# 系统内存可用
memUnused=$(top -l 1 | head -n 10 | grep -Eo '\d+M unused' | grep -Eo '\d+')
# 虚拟内存可用
vmFree=$(sysctl vm.swapusage | grep -Eo 'free = .+M' | grep -Eo '\d+\.?\d{0,2}')
# 取整合
totalFree=`expr $memUnused + $( printf "%.0f" $vmFree )`
if [ $totalFree -lt 128 ]; then
purge
fi
sleep 2
done

-lt 128 可以改成你需要设置的阀值,这里默认是低于 128MB 则执行

sleep 2 可以改成你需要的间隔时间

因为登录项只能执行 applescript 因此得再编写能调用 bash shell 的脚本

purge 这个指令是需要管理员权限的,所以脚本里还得带上密码,这个脚本得好好保管。

1
do shell script "nohup ~/Documents/autostart.sh >/dev/null 2>&1 &" password "你的管理员口令" with administrator privileges

applescript 需要导出成应用程序,然后在系 统偏好设置 > 用户与群组 添加这个应用程序即可