问题标签 [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 回答
1112 浏览

macos - 启动的 ExitTimeOut 不起作用

我有一个 plist 文件有一些工作:

问题是 script.sh 每 10 秒反复执行一次,并且在 ExitTimeOut 时间(30 秒)之后不会停止执行

由于某种原因,ExitTimeOut 不起作用......

知道如何杀死工作/执行吗?

坦克

0 投票
1 回答
736 浏览

daemon - 使用 launchd 在 OS X Yosemite 中自动启动 Zookeeper

就像标题所说的那样,我正在尝试在 OS X Yosemite 中使用 launchd/launchctl 自动启动 zookeeper。

这是我的 plist 文件“/Library/LaunchDaemons/com.test.zookeeper.plist”,它归 root:wheel 所有。

执行“sudo launchctl load com.test.zookeeper.plist”后,这是“/var/log/system.log”中的内容,用户名已替换为星号。

“/var/log/zookeeper_stdout.log”

“/var/log/zookeeper_stderr.log”

所以看起来这项工作是由launchd执行的,但是当我执行“ps -ef | grep zoo”来检查服务时,实际服务不存在,我通常会看到我是否使用“sudo / 手动启动zookeeper” opt/zookeeper/bin/zkServer.sh 启动"

有人能帮我吗?谢谢你。

0 投票
0 回答
364 浏览

macos - OSX:为什么我的启动代理运行我的脚本两次?

我有一个与这个启动代理关联的 plist。中列出了一个代理launchctl list,每当 mac 从睡眠中唤醒时,它都会调用我的 bash 脚本,称为 rc.wakeup。此 bash 脚本只有一份副本。bash 脚本中的代码不再重复。尽管如此,bash 脚本还是被完整地执行了两次。为什么?

编辑:我创建了一个安装 bash 脚本和一个卸载 bash 脚本。我一直在连续执行这些,试图让两个脚本都能正常工作,这样任何人都可以使用这个程序。我相信不正确地安装/卸载这些文件会导致问题,尽管我不知道为什么会这样。

0 投票
1 回答
1839 浏览

macos - launchctl 无法运行或加载 plist 时是否有任何情况?

有时我看到触发命令根本不会加载应用程序。这种情况很少发生,但是否有任何已知条件或情况会导致此命令失败?有没有办法调试launchctl?

plist的内容是:

launchctl dumpstate显示状态=等待。为什么?

任何帮助都将是可观的。

0 投票
3 回答
735 浏览

python - ImportError:从launchd调用时没有名为bs4的模块

我在一个脚本中运行以下 python 导入,该脚本可以从终端的命令行和 ipython 笔记本正常工作。

当通过 Mac 启动从 .plist 文件调用它时,我收到以下错误:

从命令行和 ipython bs4 导入,脚本工作正常。这是似乎可以正常工作的 .plist 代码。不知道为什么脚本只有在被launchd调用时才能导入bs4。

0 投票
0 回答
184 浏览

objective-c - macOS 预登录窗口中的键盘和鼠标模拟失败

我是启动代理和守护进程的新手。我创建了一个预登录代理,它会在登录窗口打开时启动我的应用程序。我可以在用户会话中使用 CGEventPost 模拟键盘和鼠标事件。请参考代码

//对于键盘

//对于鼠标

//登录前启动代理

CGEventPost 在登录前窗口中不起作用。如何解决?有没有替代方法?

0 投票
1 回答
243 浏览

shell - 唤醒时运行 plist

我一直在搜索并在启动站点上找到了选项。有没有办法启动.plist机器唤醒?如果这是不可能的,有没有办法在不安装另一个包的情况下运行 shell 脚本而只使用普通 shell?

0 投票
1 回答
368 浏览

macos - 尝试在 LaunchAgent 中访问钥匙串密码时出现错误代码 9216

还有几个其他问题讨论了从 LaunchAgents 访问钥匙串。

其中一个关键是这里joensson提到你需要在你的应用程序列表中设置一个<SessionCreate>

我已经这样做了,现在我的应用程序 plist 看起来像这样:

该应用程序是一个 python 应用程序,它使用 pyinstaller 创建,使用 pkgbuild打包,并通过命令行安装。

从命令行运行时,应用程序运行良好。如果应用程序第一次运行,用户会收到允许访问钥匙串的提示,应用程序会从那里继续。

但是,当它作为LaunchAgent. 这是我用来测试的确切命令序列:

在 python 脚本中,我一直在通过运行一些子命令并捕获输出进行调试。

该部分代码的输出如下所示:

这些相同的命令在命令行中可以正常工作,最后一个 ( -g) 会提示允许访问钥匙串。

我也尝试com.ionicsecurity.client.sdkKeyChain Access应用程序中打开条目,并设置“允许所有应用程序访问此项目”单选按钮。之后,从 cli 中获取值不再导致提示,但应用程序返回相同的错误代码。

我搜索了有关错误代码 9216 的信息,但没有结果。通过该实用程序运行代码security errors只会给出

在作为 LaunchAgent 运行时如何让应用程序访问钥匙串的任何帮助将不胜感激!

0 投票
1 回答
1487 浏览

macos - OSX:为当前用户加载单个启动代理的语法

我正在尝试加载单个用户的 LaunchAgent plist。目录下所有现有的plist文件都拥有用户和用户默认组的权限,

如果我对我的 plist 文件使用这些权限并尝试加载,我会得到

如果我将权限设置root:wheel为相同的命令有效。

我想我要加载错误的方式,所以我尝试了这个:

但是从 100 行的输出来看,它似乎正在尝试加载每个存在的 plist 文件。

该工具的文档似乎表明这只会扫描 plist 文件~/Libraries(见下文),

如何为当前用户加载 LaunchAgent?

0 投票
1 回答
89 浏览

macos - 在 OSX 中让 Launchd 重复运行脚本而无需等待之前的启动完成

假设我有下面的脚本

当我设置启动代理以每 2 分钟触发一次此脚本时... launchd 将等待脚本完成,然后再次触发它。因此,不是每 2 分钟(在 300 秒睡眠后)的日期,而是每 5 分钟或更长时间得到它。有没有办法让launchd每2分钟启动一次脚本,不管它是否完成?