前言
MacOS可以使用launchctl
命令管理服务,也可以使用brew services
。
brew services 相比 launchctl,操作更简化,更加类似 Centos 的 systemd 命令。
brew services常用命令
启动、停止服务
例如:启动nginx
brew services start nginx
例如:停止php-fpm
brew services stop php
查看服务列表
brew services list
# 示例输出
Name Status User File
nginx started dotatong ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
php started dotatong ~/Library/LaunchAgents/homebrew.mxcl.php.plist
清除无用服务配置
brew services cleanup
launchctl常用命令
启动、停止服务
例如:启动nginx
launchctl start ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
例如:停止php-fpm
launchctl stop ~/Library/LaunchAgents/homebrew.mxcl.php.plist
查看服务列表
launchctl list
开机启动
启用开机启动
launchctl enable ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
禁用开机启动
launchctl disable ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
服务配置
加载配置
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
注意:-w
为可选参数,表示忽略配置文件中 Disabled 选项,都启动服务
卸载配置
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
配置文件
服务配置文件目录
目录 | 说明 |
---|---|
~/Library/LaunchAgents | 用户登录后自启动服务 |
/Library/LaunchAgents | 用户登录后自启动服务(该目录需要root权限) |
/Library/LaunchDaemons | root开机自启动服务(该目录需要root权限) |
/System/Library/LaunchDaemons | root开机自启动服务(该目录需要root权限) |
/System/Library/LaunchAgents | 用户登录后自启动服务(该目录需要root权限) |
配置文件格式,例如:nginx配置文件
<?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>homebrew.mxcl.nginx</string>
<key>LimitLoadToSessionType</key>
<array>
<string>Aqua</string>
<string>Background</string>
<string>LoginWindow</string>
<string>StandardIO</string>
<string>System</string>
</array>
<key>ProgramArguments</key>
<array>
<string>/usr/local/opt/nginx/bin/nginx</string>
<string>-g</string>
<string>daemon off;</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>WorkingDirectory</key>
<string>/usr/local</string>
</dict>
</plist>
配置文件中的项
项 | 说明 |
---|---|
Label | 服务名称 |
Disabled | 是否禁用该服务 |
KeepAlive | 挂掉后是否自动重启该服务 |
ProgramArguments | 程序启动参数 |
RunAtLoad | 是否开机启动 |
UserName | 启动服务的用户 |
GroupName | 启动服务的用户组 |
文章作者:DOTATONG
发布日期:2023-03-09
评论