【发布时间】:2018-04-25 14:37:28
【问题描述】:
我正在尝试在 macOS 10.13 High Sierra 上为 Zabbix 代理设置启动守护程序。
首先我安装 Zabbix 代理:
brew install zabbix --without-server-proxy
然后我用这个内容创建一个名为 com.zabbix.zabbix_agentd.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>AbandonProcessGroup</key>
<true/>
<key>GroupName</key>
<string>zabbix</string>
<key>KeepAlive</key>
<dict>
<key>SuccessfulExit</key>
<false/>
</dict>
<key>Label</key>
<string>com.zabbix.zabbix_agentd</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/sbin/zabbix_agentd</string>
<string>-c</string>
<string>/opt/zabbix/zabbix_agentd.conf</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/var/log/zabbix/zabbix_agentd.error.log</string>
<key>StandardOutPath</key>
<string>/var/log/zabbix/zabbix_agentd.stdout.log</string>
<key>UserName</key>
<string>zabbix</string>
</dict>
</plist>
我加载它:
sudo launchctl load ./com.zabbix.zabbix_agentd.plist
现在我可以看到守护进程已经完成了我所期望的:
ps ax | grep zabbix_agentd | grep -v grep
我看到了 6 个 zabbix 进程。 1 个收集器、3 个侦听器、1 个主动检查以及启动守护进程启动的进程:
8931 ?? S 0:00.01 /usr/local/sbin/zabbix_agentd -c /opt/zabbix_agentd.conf
但是当我运行这个命令时:
launchctl print system/com.zabbix.zabbix_agentd | grep state
我得到这个输出:
state = waiting
我希望看到 state = running... 为什么该命令告诉我守护进程正在等待,而它有 6 个正在运行的进程?
这是“按设计工作”还是我做错了什么?
【问题讨论】:
标签: macos plist zabbix launchd macos-high-sierra