1

我正在构建一个可以运行 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-user501。

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

提前致谢。

4

0 回答 0