本文以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 thatfixes 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

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

macos launchctl命令相关推荐

  1. macOS Big Sur11.4版本解决MySQL 8.0.x系统偏好里无法启动停止服务的问题,附Launchctl 命令和.plist文件的拓展知识

    一.问题及解决方法 升级了最新的macOS Big Sur11.4后MySQL8.0.x版本的在系统偏好面板里就无法启动了,整个8.0.x版本的MySQL都安装试了一遍还是一样的问题,也没有弹出任何错 ...

  2. macos终端命令_M-cli为初学者简化了macOS的最佳终端命令

    macos终端命令 You can do a lot with the macOS Terminal, but the commands tend to be obtuse. A free progr ...

  3. macOS 常用命令

    https://www.cnblogs.com/mangosoft/p/6375266.html macOS 常用命令 基本命令 1.列出文件 ls 参数 目录名 例:看看驱动目录下有什么:ls /S ...

  4. MacOS 常用命令汇总

    文章目录 设置环境变量 列出所有可以更新的软件包 直接更新所有可以更新的软件包 打包压缩文件 忽略 Mac OS 文件系统中的扩展属性 忽略 Mac OS 专有的隐藏文件 创建 DMG 格式的文件 修 ...

  5. 【MacOS】命令行配置zsh以及powerlevel10k主题

    一.概述 前段时间在B站上看到有UP主在Manjaro Linux上使用了zsh并且配置一个超级炫酷的主题powerlevel9k:传送门.看了之后非常跃跃欲试,想在我的iMac上也配置一下,但是网上 ...

  6. macOS date 命令增减时间。

    mac date 命令使用 环境:系统 macOS Catalina 10.15.7 macOS 的 date 命令使用和 Linux 使用有稍许不同. 放上几个小例子做记录. macOS 增减日期命 ...

  7. macOS终端命令行配置网络代理

    一.前言:   在下载一些需要vpn下载公司内网的源码或者认证时,必不可少的需要使用代理,与普通的网页及应用代理不同,在mac的终端中并没有开启默认的代理模式,所以需要手动进行设置,设置分为两部分:设 ...

  8. macOS - afconvert 命令(音频格式转换)

    afconvert 命令(音频格式转换) 文章目录 afconvert 命令(音频格式转换) 一.转换示例 1.wav --> acc 2.指定输出名称 3.aac --> caf 4.批 ...

  9. macOS - networksetup 命令

    networksetup 文章目录 networksetup 方法及使用 networkservice hardwareports computername dhcp.route.domain ipv ...

最新文章

  1. 【干货书】Python金融分析,714页pdf掌握数据驱动金融
  2. Facebook开源ptr:在Python环境中并行运行单元测试
  3. java前后端分离账号错误_前后端分离,获取token,验证登陆是否失效
  4. QML实现酷炫的 Cover Flow 效果(PathView)
  5. c++ 程序在内存中的分布
  6. django render_(django/flask/bottle)多框架python-restful接口包api-shop
  7. 【Alpha】十天屠龙记
  8. SQL Server调优系列基础篇(常用运算符总结)
  9. python编程从入门到实战的16堂课_好评如潮,百万Python程序员的「案头必备书」,终于出配套习题解答了!...
  10. 银行自助填表方案介绍
  11. 毕向东_JavaScript视频教程_javascript编程
  12. 网络安全等级保护基本要求
  13. js 实现井字棋游戏
  14. 感受亮度与光强,及马赫带效应
  15. 保利威视自定义右键菜单设置
  16. 用计算机撩人套路,各种撩人的套路句子40句
  17. python之父:《Python程序员指南》这本书你应该了解以下,pdf
  18. v-model是什么?怎么使用?
  19. myeclipse2017 for Mac 破解版本
  20. Java教程:Java使用POI将图片Base64编码写入到Excel表格当中

热门文章

  1. nw.js 调用驱动程序_使用NW.js创建照片发现应用程序(第2部分)
  2. VMware 12启动不起来
  3. 实时 Java 社区论坛:Sym
  4. War3快捷键大全—NE
  5. matlab 画小动物,小动物生理监测系统
  6. 小米解决无法自动化启动应用
  7. 树莓派4B摄像头的详细使用教程(拍照+录像+监控)
  8. 助力智慧城市快速实现规划建设的利器--城市大脑
  9. JavaScript中字符串拼接
  10. 华为手机是否更新为鸿蒙系统,华为鸿蒙OS即将迎来升级 手机端操作系统或还要更久...