macos launchctl命令

本文以macOS上通过launchctl命令开机自动启动homebrew安装的wireguard服务来说明部分launchctl使用用法。
首先,需要写一个launch文件,后缀为.plist,格式为很神奇的xml格式,因为wireguard会修改整个的网络设置,所以需要该配置文件放在/Library/LaunchDaemons/文件夹下,在其下创建com.wireguard.wg0.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>Label</key>
        <string>com.wireguard.wg0</string>
        <key>ProgramArguments</key>
        <array>
            <!-- Points to local version of wg-quick that
                 fixes path issues with the script -->
            <string>/opt/homebrew/bin/wg-quick</string>
            <string>up</string>
            <string>wg0</string>
        </array>
        <key>KeepAlive</key>
            <dict>
                <key>NetworkState</key>
                <true/>
            </dict>
        <key>RunAtLoad</key>
        <true/>
        <key>StandardErrorPath</key>
        <string>/opt/homebrew/var/log/wireguard.err</string>
        <key>EnvironmentVariables</key>
        <dict>
            <key>PATH</key>
            <!-- Adds in user-specific and Homebrew bin directories to start of PATH -->
            <string>/Users/jackguan/.local/bin:/opt/homebrew/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
        </dict>
    </dict>
</plist>

在Label中输入服务的名称,也就是com.wireguard.wg0,注意:文件名要与这个Label标签的值保持一致。然后在Array下添加命令每个位置的值,因为wg启动wg0的命令为

wg-quick up wg0

所以Array中有仨,第一个填wg-quick的二进制文件地址,第二个为up,第三个wg0。
在保存完成后输入

sudo launchctl enable system/com.wireguard.wg0
sudo launchctl bootstrap system /Library/LaunchDaemons/com.wireguard.wg0.plist

设置开机启动服务。
另外通过

launchctl list | grep -v "appple"

可以筛选出非apple的开机启动项,选择不想要的干掉,比如我这里有

-	0	com.adobe.AdobeCreativeC
-	0	com.apphousekitchen.aldente-pro-LaunchAtLoginHelper

这俩开机自启,而且还无法设置关闭。通过

launchctl stop com.apphousekitchen.aldente-pro-LaunchAtLoginHelper

即可停止开机自动开启脚本

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值