一个参考的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-monitor

Note

此处对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