【发布时间】:2015-02-25 20:52:54
【问题描述】:
我在启动时无法将 MySQL 作为系统范围的守护程序启动。我创建了一个简单的 .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>KeepAlive</key>
<true/>
<key>Label</key>
<string>com.mysql.mysqld</string>
<key>Program</key>
<string>/usr/local/bin/mysqld</string>
</dict>
</plist>
并把它放在 /Library/LaunchDaemons 根据this article 是应该放置系统级守护程序的位置。我将所有权更改为 root
chown root <path_to_plist>
chgrp admin <path_to_plist>
chmod 644 <path_to_plist>
当我重新启动时,守护程序似乎没有运行(ps 没有返回任何内容,mysql 无法连接)。我能够手动启动守护进程
sudo launchctl load <path_to_plist>
但不是自动的。
我最终将 .plist 移至 ~/Library/LaunchAgents,在将所有权更改为登录用户并重新启动后,守护程序终于启动了。
- 为什么 mysqld 不在 /Library/LaunchDaemons 下运行?
- 如果另一个用户也这样做,从 ~/Library/LaunchAgents 运行会创建另一个 mysqld 实例吗? (我想避免这种情况)
谢谢!
【问题讨论】: