问题标签 [launchdagent]

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.

0 投票
1 回答
416 浏览

cocoa - 如何保护每用户 GUI 启动代理免受非管理员用户禁用它?

我有一对 launchd 守护进程,其中一个是真正的守护进程(以 root 身份运行),其中一个是基于 GUI 会话运行的 GUI 代理(会话类型 Aqua)。

我需要防止非管理员级别的用户使用launchctl禁用用户级别的代理,或者至少弄清楚如何从根级别的守护进程重新加载代理。

到目前为止我发现的最好的文章是这篇文章但它并没有真正提供任何明确的解决方案。

最简单的方法似乎是在根守护程序中定期获取当前控制台用户,然后launchctl load ...以该用户身份运行,但我不完全是否可能/我将如何解决这个问题(如果我只是从daemon 不冒充用户,会在 root 用户下加载,这样不好)。

有任何想法吗?

0 投票
4 回答
9120 浏览

macos - 使用 GUI 会话为所有用户启动/停止启动代理

我需要能够从根级守护进程启动/停止每个会话的 GUI 代理。

在这里这里这里讨论了类似的问题。

我想要能够做的基本上是

但这只会启动/停止一个实例,并在当前 GUI 会话中以 root 身份运行。如果我离开 sudo 那里开始我得到

我尝试过处理 bsexec 的各种其他排列(包括使用 load/unload 命令从 bsexec 调用辅助脚本),但我永远无法让实例以 root 以外的任何方式启动,也永远无法在另一个 GUI 会话中启动.

我也尝试过使用su - <user> ...and sudo -u <user> ...,但也没有运气(正如许多人在上面链接的文章和其他地方所讨论的那样)。

有人有什么想法吗?

编辑:我尝试使用 Graham Lee 下面建议的包装工具执行此操作,但出现以下错误:

这是我正在使用的命令行命令、包装器和脚本(501 是用户 ID,63093 是另一个登录到系统的用户的启动 pid):

命令行:

包装:

脚本:

0 投票
4 回答
1036 浏览

objective-c - LaunchAgent - 有类似 RunAtScreenSaver 的东西吗?

我正在寻找一种方法来执行我的应用程序(它是一个后台任务),有时机器处于“空闲”状态。一个很好的事件是屏幕保护程序启动时。我已经阅读了手册 auf launchd 并且已经使用 LaunchAgent 以一定的时间间隔启动我的应用程序,但是我发现没有任何东西可以帮助我在屏幕保护程序处于活动状态时启动我的应用程序。

有没有可能这样做?

提前致谢!

乔什

0 投票
1 回答
3544 浏览

cocoa - 如何在 Mac os x 10.5 / 10.6 上安装启动代理

我在可可中开发了一个launchAgent。通过将 plist 文件放置在 /Library/LaunchAgents/ 位置,它在开发环境中对我来说很好用。为了在其他笔记本电脑上分发和安装它,我使用包制作工具创建了包。作为安装过程的一部分,我想更改 plist 文件的权限并将其复制到 /Library/LaunchAgents 位置。谁能告诉我如何实现这一目标?

提前感谢您的帮助....任何帮助将不胜感激..!!!!

0 投票
2 回答
540 浏览

launchd - 有人在 Mac App Store 中提交或知道使用 launchd 的应用程序吗?

只是想知道是否有人成功提交了应用程序或知道 Mac App Store 中存在使用 launchd 的应用程序。

谢谢。

0 投票
1 回答
1030 浏览

macos - OS X - 启动守护进程和启动代理之间的通信

我是 OS X 新手,必须创建一个包含 2 个部分的应用程序 - 启动守护进程和启动代理。守护进程将执行命令执行、日志记录等工作,并且必须以某种方式将这些结果传达给启动代理(这会将它们传输到显示 GUI 的登录项,尽管这是未来的步骤)。

我的问题:我如何实现这种沟通?在阅读 Apple 文档后,到目前为止我所能收集到的信息是,我最好的选择是使用 CFSockets。有没有替代(更简单)的方式?有没有人有任何示例教程/示例/代码来展示如何使用 CFSockets(我找不到任何)?

PS:我的问题可能与问题重复,但该问题尚未得到解答,因此我想发布此问题。

0 投票
1 回答
5988 浏览

macos - 由于奇怪的原因,launchd Job 无法执行(3):8

我正在尝试在 OS X Mountain Lion 10.8.3 中安排一个简单的任务

命令不执行脚本并向控制台抛出消息

我的 plist 很简单:

脚本也很简单

launchctl 加载它没有错误。从 shell 执行脚本时,它按预期工作。注销并重新登录无济于事。在谷歌中没有找到任何答案。那个“奇怪的原因:8”到底是怎么回事?

0 投票
2 回答
551 浏览

php - mac osx 上的 PHP Fast CGI - phpfcgi.plist 不通过加载运行,也不通过重启运行

我已经加载了 phpcgi.plist 但 php-fastcgi 没有运行。

plist文件是:

plist XML:

链接它:

我加载它:

我检查一下:

不工作。

但我可以通过运行启动 php fastcgi。

0 投票
1 回答
102 浏览

macos - launchd 自动启动

尝试创建一个每天凌晨 4 点开始的任务,以重新启动我的 mac 并执行一些维护脚本。这是我的脚本:

如果我运行 launchctl unload / load 来重新加载我的 plist 文件,它将执行脚本。我有点困惑,因为我已将 RunAtLoad 参数设置为 false。尝试了很多东西,但我无法让它运行。有人知道我的错在这里吗?

操作系统:OS X 10.9

0 投票
1 回答
115 浏览

macos - 脚本未在 launchd plist 中运行

我想使用 launchd 在每天的特定时间运行我的一个 AppleScript。

我创建了 plist 并将其放在 LaunchAgent 文件夹中,但它不运行脚本。

我下载了 LaunchControl,http://www.soma-zone.com/LaunchControl/。当我将applescript拖到“程序运行”框中时,路径最初是红色的。

我做了一个 chmod u+x /path/to/script,路径变成了绿色。

然而,当我在 LaunchControl 中运行它时,我得到一个错误。

这些脚本可以自己正常工作。我没有使用 shell 脚本,它们是 applescripts。

我希望这只是一个权限问题,我希望将来使用更多已启动的代理。

谢谢你的帮助。