Skip to content

frpc 看门狗 on macOS

/usr/local/bin/check-frpc.sh:

bash
#!/bin/bash

# 检查 frpc 是否正在运行
if ! pgrep -f "frpc" > /dev/null; then
  cd /Users/fuming && /opt/homebrew/bin/brew services start frpc
  echo "$(date) 启动 frpc"
#else
  # echo "$(date) frpc 正在运行"
fi

~/Library/LaunchAgents/start-frpc.cron.plist:

xml
<?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>start-frpc.cron</string>
	<key>ProgramArguments</key>
	<array>
		<string>/usr/local/bin/check-frpc.sh</string>
	</array>
	<key>StandardErrorPath</key>
	<string>/Users/f/services/check-frpc.log</string>
	<key>StandardOutPath</key>
	<string>/Users/f/services/check-frpc.log</string>
	<key>StartInterval</key>
	<integer>60</integer>
</dict>
</plist>

启动任务

bash
launchctl load ~/Library/LaunchAgents/start-frpc.cron.plist

查看当前加载状态

执行:

bash
launchctl list | grep start-frpc.cron

如果有结果(比如带 PID 或 exit code),说明它正在运行或被加载。

停止并卸载这个任务

bash
launchctl unload ~/Library/LaunchAgents/start-frpc.cron.plist

再次检查:

bash
launchctl list | grep frpc

如果没输出,说明停止成功。