641

MacOS使用brew services 和 launchctl管理服务

前言

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/LaunchDaemonsroot开机自启动服务(该目录需要root权限)
/System/Library/LaunchDaemonsroot开机自启动服务(该目录需要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

评论

暂无

添加新评论