MacOS开机自启动程序设置
文件存放目录
mac使用launchctl来管理自启动程序。launchctl加载预定义路径下的xml文件,来安装自启动脚本。脚本存放在5个目录之中:
- /System/Library/LaunchDaemons/
- /Library/LaunchDaemons/
- /System/Library/LaunchAgents
- /Library/LaunchAgents
- ~/Library/LaunchAgents
增加一个自动文件
<?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>user01.docker.mariadb</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/docker</string>
<string>run</string>
<string>--rm</string>
<string>--name</string>
<string>mariadb104</string>
<string>-p</string>
<string>127.0.0.1:3306:3306</string>
<string>-v</string>
<string>/Users/user01/mariadb/var/lib/mysql:/var/lib/mysql</string>
<string>-v</string>
<string>/Users/user01/mariadb/run:/var/run/mysqld</string>
<string>-d</string>
<string>mariadb:10.4</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
卸载服务
# launchctl unload -w /Users/user01/Library/LaunchAgents/user01.docker.mariadb.plist
启动服务
# launchctl load -w /Users/user01/Library/LaunchAgents/user01.docker.mariadb.plist
列出所有服务
# launchctl list
参考资料
- https://en.wikipedia.org/wiki/Launchd
- https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html
- https://stackoverflow.com/questions/42637339/how-to-start-docker-for-mac-daemon-on-boot
- https://developer.apple.com/library/archive/technotes/tn2083/_index.html#//apple_ref/doc/uid/DTS10003794