Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos Mac OS X:刷新服务菜单在终端中有效,但在安装后脚本中无效_Macos_Packagemaker - Fatal编程技术网

Macos Mac OS X:刷新服务菜单在终端中有效,但在安装后脚本中无效

Macos Mac OS X:刷新服务菜单在终端中有效,但在安装后脚本中无效,macos,packagemaker,Macos,Packagemaker,我有一个OSX应用程序,为其他应用程序提供服务菜单。到目前为止,这一切都很正常,用户安装应用程序并注销和重新登录后,菜单被激活并可用 我知道,当通过打开终端并运行服务菜单代理pbs来扫描更改的服务时,注销和重新登录是过时的 /系统/库/核心服务/pbs 这也可以在新应用程序不启动一次的情况下工作 所以我想提供一个installer.pkg,它以安装后脚本的形式运行pbs。令人惊讶的是,只有在应用程序启动之前(例如: ! /垃圾箱/垃圾箱 sleep 3 open /Applications/My

我有一个OSX应用程序,为其他应用程序提供服务菜单。到目前为止,这一切都很正常,用户安装应用程序并注销和重新登录后,菜单被激活并可用

我知道,当通过打开终端并运行服务菜单代理pbs来扫描更改的服务时,注销和重新登录是过时的 /系统/库/核心服务/pbs 这也可以在新应用程序不启动一次的情况下工作

所以我想提供一个installer.pkg,它以安装后脚本的形式运行pbs。令人惊讶的是,只有在应用程序启动之前(例如: ! /垃圾箱/垃圾箱

sleep 3
open /Applications/MyApp.app
sleep 3
/System/Library/CoreServices/pbs
exit 0

不幸的是,由于应用程序特定的原因,我不想直接从安装程序启动我的应用程序。有人知道为什么安装后脚本的行为不同于终端吗

根据安装程序要求的权限,安装后脚本可能以root用户身份运行。尝试:

sleep 3
su -l "${USER}" -c "open /Applications/MyApp.app"
sleep 3
su -l "${USER}" -c "/System/Library/CoreServices/pbs"
exit 0

最后,作为一个工作区,我将在运行pbs之前启动我的应用程序并再次停止它。仍在期待更好的解决方案。

谢谢您的回复。不幸的是,在安装后脚本中以用户身份运行pbs仍然不起作用,除非之前启动了应用程序。