OS X:如何创建一个安装程序 .pkg,将一个 launchd plist 设置为 root,另一个设置为当前用户?

Ano*_*ous 5 macos launchd package

我需要在 OS X 上创建一个程序包安装程序,用于处理两个已启动守护进程的安装:一个以 root 身份运行,另一个以当前用户身份运行。虽然这仅适用于非常小的内部部署,但我无法保证当前用户名是什么。我怎样才能:

  • 确保后者在 launchd plist 文件中设置了正确的用户名?

或者

  • 确保每一项都通过正确调用 launchctl 进行设置,一项使用“sudo”,一项不使用“sudo”?

cod*_*ody 3

在您的 postflight 脚本中只需执行以下操作:

launchctl load -w /Library/LaunchDaemons/com.my.daemon.plist

LOGGEDUSERS=`who | awk '/console/ { print $1 }'`
for CURRUSER in $LOGGEDUSERS
do
    su -l $CURRUSER -c 'launchctl load /Library/LaunchAgents/com.my.agent.plist'
done
Run Code Online (Sandbox Code Playgroud)

查看此相关问题以获取一些附加信息