我正在构建一个可以运行 java 服务的 launchctl 服务。我能够使用 root 用户创建 launchctl 服务,并在重启用例时测试启动/停止/状态/自动启动。
我正在努力与非root用户运行相同的launchctl服务(ec2-user
在我的情况下)
我的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>siem</string>
<key>ProgramArguments</key>
<array>
<string>java</string>
<string>-jar</string>
<string>/Users/ec2-user/siem.jar</string>
</array>
<key>RunAtLoad</key>
<true/> <!-- run the program at login -->
<key>KeepAlive</key>
<true/> <!-- run the program again if it terminates -->
<key>WorkingDirectory</key>
<string>/Users/ec2-user</string>
<key>StandardErrorPath</key>
<string>/tmp/mycommand.err</string>
<key>StandardOutPath</key>
<string>/tmp/mycommand.out</string>
</dict>
</plist>
我已经尝试了各种步骤来运行上述服务ec2-user
。UID 为ec2-user
501。
ec2-user@ip-172-31-30-212 ~ % launchctl bootstrap gui/501 ~/Library/LaunchDaemons/siem.plist
Bootstrap failed: 125: Unknown error: 125
验证plist文件的内容
ec2-user@ip-172-31-30-212 ~ % plutil ~/Library/LaunchDaemons/siem.plist
/Users/ec2-user/Library/LaunchDaemons/siem.plist: OK
尝试使用引导服务user
ec2-user@ip-172-31-30-212 ~ % launchctl bootstrap user/501 ~/Library/LaunchDaemons/siem.plist
Bootstrap failed: 5: Input/output error
以上所有错误都不是冗长的,似乎没有找到任何方法。
我的目标:我想用非 root 用户运行 launchctl 服务。
环境细节:
操作系统:AWS EC2 实例上的 macOS
macOS 版本:BigSur 和 Monterey
提前致谢。