等待某个应用程序退出,然后启动另一个应用程序

托马斯·S。

在OS XI上,要执行一个osascript命令,该命令要等到由其完整.app路径指定的某个应用程序退出后,再启动另一个应用程序,例如使用/usr/bin/open -n /Applications/MyApp.app

如何实现等待应用程序退出的等待?

保罗·盖奥(Paul Guyot)

一种常见的方法是执行等待循环,例如pgrep

while pgrep -f /Applications/TextEdit.app 2>/dev/null ; do sleep 1.0 ; done

不幸的是,这会睡得太多,并延迟其他应用程序的启动。

另外,如果您知道该应用程序正在运行,则可以使用/usr/bin/open

open -g -W /Applications/TextEdit.app

不幸的是,这将在未运行的情况下打开该应用程序。您可以在调用之前检查它是否正在运行/usr/bin/open,但这不是原子的:它可能正在关闭,并且open命令可以重新启动它。

两者都可以封装在osascript中(尽管可能没有多大意义)。

osascript -e 'do shell script "while pgrep -f /Applications/TextEdit.app 2>/dev/null ; do sleep 1.0 ; done"'
osascript -e 'do shell script "open -g -W /Applications/TextEdit.app"'

附带说明:open -W实际上对进程执行kqueue等待(非轮询等待)。可能还有其他命令调用kqueue并执行相同的任务,而没有重新启动应用程序的风险。在C中很容易实现。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从另一个应用程序启动我的应用程序,然后返回

当前,另一个应用程序拥有yum锁;等待它退出

JavaFX启动另一个应用程序

从另一个Java应用程序启动Java应用程序

如何从另一个应用程序启动iOS相册应用程序?(迅速)

从另一个Android应用程序启动Xamarin Android应用程序

如何离开当前应用程序并启动另一个应用程序的活动?

从另一个可安装的应用程序启动即时应用程序

tizen Web 应用程序,启动另一个 Web 应用程序

了解应用程序是否由另一个应用程序启动

从另一个应用程序启动外部“不可见”应用程序

如何从我的Ubuntu Touch应用程序启动另一个应用程序?

启动另一个后台应用程序的后台应用程序

批处理脚本以查找程序是否没有响应,然后启动另一个应用程序,否则退出批处理作业

来自另一个Android应用程序的一个应用程序的Android启动服务

启动离线ClickOnce应用程序,然后等待退出

(Android)检测何时启动另一个应用程序/所有应用程序的启动计数

在与另一个应用程序(eXist-db)进行交互之前,如何等待它启动?

关闭窗口然后选择另一个应用程序时,Mac应用程序消失

从另一个应用程序更改一个应用程序的变量

osX - 如何从我的 QT 应用程序启动另一个程序

从另一个程序集启动 asp net core 应用程序

如何允许某个标准用户帐户上的某个应用程序但不允许另一个标准用户帐户上的某个应用程序?

当另一个应用程序启动时如何运行我的应用程序

从另一个应用程序(文件浏览器/下载)启动我的应用程序的活动

如何调试从另一个应用程序启动的应用程序?(VB6)

如何在我自己的 Android 应用程序中启动另一个应用程序?

如何使用来自另一个kivy应用程序的参数启动kivy应用程序

从另一个控制台应用程序在WPF应用程序中启动操作