一个参考的plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.user.syncthing-monitor</string>
<key>ProgramArguments</key>
<array>
<string>username/miniconda3/envs/normal/bin/python</string>
<string>username/Documents/learning/monitoring/syncthing/syncthing_monitor.py</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardErrorPath</key>
<string>username/Documents/learning/monitoring/syncthing/syncthing-monitor.err</string>
<key>StandardOutPath</key>
<string>username/Documents/learning/monitoring/syncthing/syncthing-monitor.out</string>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
</dict>
</dict>
</plist> # 1. 确保脚本有执行权限
chmod +x syncthing_monitor.py
# 2. 将plist文件复制到LaunchAgents目录
cp com.user.syncthing-monitor.plist ~/Library/LaunchAgents/
# 3. 加载服务
launchctl load ~/Library/LaunchAgents/com.user.syncthing-monitor.plist# 启动服务
launchctl start com.user.syncthing-monitor
# 停止服务
launchctl stop com.user.syncthing-monitor
# 卸载服务
launchctl unload ~/Library/LaunchAgents/com.user.syncthing-monitor.plist-
标准输出日志:
username/Documents/learning/monitoring/syncthing-monitor.out -
错误日志:
username/Documents/learning/monitoring/syncthing-monitor.err
查看运行详细信息
launchctl list com.user.syncthing-monitorNote
此处对
plist文件进行了修改,删掉了标准日志输出的逻辑,在代码中采用自定义的输出位置
{
"LimitLoadToSessionType" = "Aqua";
"Label" = "com.user.syncthing-monitor";
"OnDemand" = false;
"LastExitStatus" = 0;
"PID" = 54637;
"Program" = "username/miniconda3/envs/normal/bin/python";
"ProgramArguments" = (
"username/miniconda3/envs/normal/bin/python";
"username/Documents/learning/monitoring/syncthing/syncthing_monitor.py";
);
};
可查看内存占用情况
ps -p 1234 -o pid,%mem,rss,comm