问题标签 [launch-agent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - LaunchAgent 以 root 身份运行 bash 脚本
LaunchAgent 位于 /Library/LaunchAgents
如何让 locationChanger.sh 以 root 身份运行?该脚本抛出错误,说它需要是根。如果我在需要 root 的行前面添加 sudo,它会抛出一个错误,指出需要密码。
bash 脚本中需要 root 的行是“路由添加”和“路由删除”
macos - 启动代理和“CGSDeviceSynchronize:无效的设备窗口”
我创建了一个作为 LaunchAgent 运行的 OSX 应用程序。它有一个状态菜单。安装后,如果我注销并再次登录,状态菜单不会出现。该应用程序出现在活动监视器中。我注意到 Main Xib 本身没有加载。从控制台,我看到以下日志:
我无法总是复制它。但是每当出现问题时,我似乎都会收到上述日志。
objective-c - OSX:“Window Server:将前端应用程序设置为我的应用程序失败”
我正在launchAgent
使用以下命令从安装后脚本启动一个:
代理显示NSStatusItem
带有几个菜单选项的状态项 ( )。其中之一有一个设置选项。单击此按钮将打开一个NSWindow
,并带有几个NSTextField
s。有时,虽然这个窗口是最顶部的,但我输入的任何内容都会转到底层应用程序。我无法在文本字段中输入任何内容。每当发生这种情况时,我都会在控制台中注意到以下日志:
这不是一致的行为。知道为什么这个日志会出现吗?有什么解决方法吗?可以使用启动代理su -l
吗?
cocoa - XPC 服务,作为 Launch Agent 启动
我确实创建了一个 XPC 服务,它在后台运行并创建定期任务
将其放入路径 /Users/Peter/Library/Application Support/AGENT TEST APPS/CS Agent.xpc
我可以通过直接执行文件来运行它
我将 .plist 放入 LaunchAgents 中,对可执行文件进行裁判
/li>
但它不会在启动时启动,因为它应该
更新
确实尝试手动加载
但我没有在活动监视器中看到它,也没有看到它应该产生的任何输出(创建文件)
当我做launchctl list时,我看到了
osx-yosemite - OSX Yosemite LoginWindow 代理没有持续登录
在 Mavericks 和更早版本中,LimitLoadToSessionType 设置为 LoginWindow 的 LaunchAgent plist 将始终在 LoginWindow 中运行代理并将其持久保存到登录帐户会话中。现在在 Yosemite 中,如果您已将 LoginWindow 指定为 plist 中的唯一会话类型,则代理将运行并且仅在 LoginWindow 期间运行。
登录 OSX Yosemite 后如何保留 LoginWindow 代理?
我尝试过的修复:
- 除了 LoginWindow 之外还添加了 Aqua,但这不可行,因为我无法停止并再次启动代理。
- 调整其他键,例如 KeepAlive 等,但没有任何帮助。就好像 Apple 认为“哦,仅在 LoginWindow 之外持久化 LoginWindow 代理是一个错误,让我们修复它!”。
在这里的任何帮助将不胜感激,谢谢。
jenkins - LaunchAgent Jenkins 使用插件安装 CocoaPods 失败
我正在尝试设置 jenkins CI 服务器来构建一些 iOS 和 Android 代码。我让它使用 Xcode 插件和一些 shell 脚本构建我的一些项目,主要是pod install
. 从那里,我尝试删除这个 shell 脚本并使用 CocoaPods 插件来正确地做事。起初它起作用了。
不幸的是,那是从 CLI 手动运行 jenkins 的时候。我现在设置了一个 LaunchAgent,CocoaPods 插件失败,控制台输出中没有任何错误或有用的指示。
ps 命令结果:
工作时,ps命令结果:
我应该放弃插件,还是 LaunchAgent 有一些我不知道的特殊性?
LaunchAgent homebrew.mxcl.jenkins.plist:
macos - OS X LaunchAgent - 在桌面准备好时运行?
我创建了一个 bash 脚本,它执行一些复杂的工作,包括一些涉及单击弹出窗口的 Applescript,它可以在机器上创建的每个新帐户上运行,以便为用户设置一些浏览器扩展(Adblock 等)
该脚本在手动调用时运行得很好,但是当作为 LaunchAgent 放置时充其量是不稳定的。它似乎在创建帐户登录/密码屏幕启动时运行 - 它会打开一个欢迎 PDF 以开始,有时当您登录时,预览已经打开而没有文件。
其他时候,您登录并在 50 秒内没有任何反应。有时它的行为也很不稳定。
该脚本需要作为启动代理运行,因为它每个新帐户运行一次 - 该脚本实际上在最后删除了启动代理 plist,因此它无法再次运行。是否有延迟脚本的运行以在桌面完全加载后启动它?也许一旦码头出现了。我将假设它试图运行得太早,它无法打开预览或 Safari,它试图删除正在使用的 plist,然后最终陷入混乱的循环。显然不是最干净的运行方式。
macos - MAC OSX 代理 - 如何启动多个实例
我正在尝试创建辅助对象(它可能是守护进程或代理)。正如您在 Chrome 和 Safari 助手中看到的那样,这应该是按需启动的,并且它的多个实例应该在那里。
我尝试了什么?我已经参考了这些Apple Docs,Launchd Tutorial & Creating Start Up Items in Mac OS X
那里提到,对于我们应该使用NumberOfProcesses
密钥的进程数量,我使用了它,但在活动监视器中我只看到一个实例。
我的 plist 看起来像这样
从 Chrome 开始,我是否在正确的路径上复制 Launch Agent Helper?请帮我找到完成它的最佳方法?
macos - 如何加载启动守护程序以在 LoginWindow 上下文中访问 WindowServer?
我正在为 OSX 开发一个可以访问 WindowServer 的应用程序。这个应用程序(我们称之为代理)首先为当前登录的每个用户加载。我正在搜索正在运行的 loginwindow 进程,并将我的 plist 加载为每个用户(在 bsexec 的帮助下设置适当的上下文)。
ps -ef | grep 登录窗口
501 90425 1 0 上午 10:46 ?? 0:01.21 /System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow 控制台
502 90721 90426 0 上午 10:54 ?? 0:00.36 /System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow
0 91103 90426 0 上午 11:01 ?? 0:02.57 /System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow
在这里,我有三个登录窗口进程 2 用于登录用户(非活动),一个用于登录窗口(活动)。
我跑:
/li>
对于每个登录的用户。
和
/li>
对于我的登录窗口。
问题是我的代理在登录窗口(以 root 身份)启动导致错误:
但是当我登录到用户,然后再次注销到登录窗口时,我启动的代理被正确创建,我可以毫无问题地访问窗口服务器。
在较新的 OSX 版本上会出现问题(例如在 10.6.8 上它可以正常工作)。
我的想法已经不多了,但我真的很想让这个在登录窗口上工作。预先感谢您的任何帮助!
/古拉什
macos - 无法在 OS X 10.10 上为 Qt Creator 设置自定义 $PATH
我将 Qt Creator 与自定义构建系统(忍者)一起使用。问题是传递给 Qt Creator IDE 的 $PATH 变量绝对是 vanilla: /usr/bin:/bin:/usr/sbin:/sbin
。
所以我必须编写bash -c '/path/to/ninja list of targets'
而不是仅仅ninja list of targets
在终端中执行构建步骤,而不是在 IDE 中。
我尝试了所有已知的方法来设置 $PATH。
- ~/.bash_profile 和 ~/.profile
- /etc/路径
- /etc/paths.d/*
- /etc/launchd.conf (
setenv PATH .....
) - ~/Library/LaunchAgents/*.plist (
sh -c 'launchtcl setenv PATH $PATH:.....'
) - /库/LaunchAgents/*.plist
StackOverflow 回答中描述了使用启动agenes 的想法。
没有工作!我的自定义 .plist 文件中的任何任意环境变量都正确设置 - 除了 PATH 之外的任何环境变量。(我已经简单地对其进行了测试:创建了一个自定义构建步骤echo xzxzxz=$XZXZXZ path=$PATH
,其中 xzxzxz 也在我的启动代理中设置)。
有趣的是,如果我从 bash 会话 ( '/Applications/Qt Creator.app/Contents/MacOS/Qt Creator' &
) 启动 Qt Creator,它会获得正确的 PATH,与 bash 本身相同。
有趣的是,分配给启动代理的 PATH 稍后会被覆盖。我在那里写了sh -c 'launchctl setenv PATH $PATH:/HELLOWORLD'
,但我没有看到 HELLOWORLD echo $PATH
。因此,存在竞争条件,有人稍后从 /etc/paths 和 /etc/paths.d 重建 PATH。
因此:
- 是否有详尽且最新的说明如何在 OSX 10.10 上设置环境变量,尤其是 PATH?
- 为什么 PATH 变成香草?
- Qt Creator 如何取胜?