欢迎各位兄弟 发布技术文章
这里的技术是共享的
在 macOS 中,当你使用 LaunchAgents 或 LaunchDaemons 创建了一个服务,并且设置了 RunAtLoad
和 KeepAlive
选项后,该服务将在系统启动时自动启动,并且会持续运行,直到系统重启或服务被显式停止。
在你的 .plist
文件中,确保你已经包含了以下配置:
Label
:服务的唯一标识符。
ProgramArguments
:指向服务脚本或可执行文件的路径以及任何需要的参数。
RunAtLoad
:设置为 true
以确保服务在系统启动时运行。
KeepAlive
:设置为 true
以确保服务一直运行。
示例 .plist
文件如下所示:
xml深色版本1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 <plist version="1.0"> 4 <dict> 5 <key>Label</key> 6 <string>com.example.myservice</string> 7 <key>ProgramArguments</key> 8 <array> 9 <string>/path/to/your/script-or-binary</string> 10 <!-- 如果需要额外的参数,可以在这里添加 --> 11 </array> 12 <key>RunAtLoad</key> 13 <true/> 14 <key>KeepAlive</key> 15 <true/> 16</dict> 17</plist>
放置 .plist
文件
将上面的 .plist
文件保存到 ~/Library/LaunchAgents/
目录下。
加载服务
在 Terminal 中加载服务:
bash深色版本1 launchctl load ~/Library/LaunchAgents/com.example.myservice.plist
启动服务
启动服务:
bash深色版本1 launchctl start com.example.myservice
检查服务状态
查看服务是否正在运行:
bash深色版本1 launchctl list | grep com.example.myservice
停止服务
如果需要停止服务,可以使用:
bash深色版本1 launchctl stop com.example.myservice
卸载服务
如果需要卸载服务,可以使用:
bash深色版本1 launchctl unload ~/Library/LaunchAgents/com.example.myservice.plist
通过这种方式配置的服务将在系统启动时自动启动,并且会一直保持运行状态,除非被明确地停止或系统重启。
如果您的服务需要在特定条件下重新启动,比如在崩溃后自动重启,可以在 .plist
文件中加入 RestartInterval
设置。例如,设置为 60 秒:
xml深色版本1 <key>RestartInterval</key> 2 <integer>60</integer>
这将确保服务在退出后 60 秒内重新启动。如果需要进一步的帮助,请随时告诉我。
macos 自定义一个服务
在 macOS 中,您可以使用 LaunchDaemons 或 LaunchAgents 来自定义服务。LaunchAgents 通常用于用户级别的服务,而 LaunchDaemons 用于系统级别的服务。下面我将向您展示如何使用 LaunchAgents 创建一个自定义服务。
创建 plist 文件
创建一个名为 com.example.myservice.plist
的文件(其中 com.example.myservice
是您的服务标识符),并将其放置在 ~/Library/LaunchAgents/
目录下。如果您没有这个目录,可以手动创建它。
编辑 plist 文件
使用文本编辑器打开 com.example.myservice.plist
并添加以下内容:
xml深色版本1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 <plist version="1.0"> 4 <dict> 5 <key>Label</key> 6 <string>com.example.myservice</string> 7 <key>ProgramArguments</key> 8 <array> 9 <string>/path/to/your/script-or-binary</string> 10 <!-- 如果需要额外的参数,可以在这里添加 --> 11 </array> 12 <key>RunAtLoad</key> 13 <true/> 14 <key>KeepAlive</key> 15 <true/> 16 </dict> 17 </plist>
替换 /path/to/your/script-or-binary
为您要运行的实际脚本或二进制文件的路径。
根据需要添加其他配置项,如环境变量等。
加载服务
打开 Terminal 并加载您新创建的服务:
bash深色版本1 launchctl load ~/Library/LaunchAgents/com.example.myservice.plist
启动服务
启动服务:
bash深色版本1 launchctl start com.example.myservice
验证服务状态
检查服务是否正在运行:
bash深色版本1 launchctl list | grep com.example.myservice
卸载服务
卸载服务时,可以使用以下命令:
bash深色版本1 launchctl unload ~/Library/LaunchAgents/com.example.myservice.plist
删除服务
删除服务文件:
bash深色版本1 rm ~/Library/LaunchAgents/com.example.myservice.plist
这样,您就可以在 macOS 上创建并运行自定义服务了。如果您需要更复杂的配置选项,可以在 plist 文件中添加更多的键值对。如果还有其他问题或需要进一步的帮助,请随时告诉我。