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

时间:2013-07-01 01:52:55

标签: macos packages launchd

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

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

OR

  • 确保通过正确调用launchctl设置每一个,一个使用“sudo”而另一个不使用?

1 个答案:

答案 0 :(得分:2)

在你的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

查看this related question了解更多信息