问题标签 [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.
macos - 启动的 ExitTimeOut 不起作用
我有一个 plist 文件有一些工作:
问题是 script.sh 每 10 秒反复执行一次,并且在 ExitTimeOut 时间(30 秒)之后不会停止执行
由于某种原因,ExitTimeOut 不起作用......
知道如何杀死工作/执行吗?
坦克
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 启动"
有人能帮我吗?谢谢你。
macos - OSX:为什么我的启动代理运行我的脚本两次?
我有一个与这个启动代理关联的 plist。中列出了一个代理launchctl list
,每当 mac 从睡眠中唤醒时,它都会调用我的 bash 脚本,称为 rc.wakeup。此 bash 脚本只有一份副本。bash 脚本中的代码不再重复。尽管如此,bash 脚本还是被完整地执行了两次。为什么?
编辑:我创建了一个安装 bash 脚本和一个卸载 bash 脚本。我一直在连续执行这些,试图让两个脚本都能正常工作,这样任何人都可以使用这个程序。我相信不正确地安装/卸载这些文件会导致问题,尽管我不知道为什么会这样。
macos - launchctl 无法运行或加载 plist 时是否有任何情况?
有时我看到触发命令根本不会加载应用程序。这种情况很少发生,但是否有任何已知条件或情况会导致此命令失败?有没有办法调试launchctl?
plist的内容是:
launchctl dumpstate
显示状态=等待。为什么?
任何帮助都将是可观的。
python - ImportError:从launchd调用时没有名为bs4的模块
我在一个脚本中运行以下 python 导入,该脚本可以从终端的命令行和 ipython 笔记本正常工作。
当通过 Mac 启动从 .plist 文件调用它时,我收到以下错误:
从命令行和 ipython bs4 导入,脚本工作正常。这是似乎可以正常工作的 .plist 代码。不知道为什么脚本只有在被launchd调用时才能导入bs4。
objective-c - macOS 预登录窗口中的键盘和鼠标模拟失败
我是启动代理和守护进程的新手。我创建了一个预登录代理,它会在登录窗口打开时启动我的应用程序。我可以在用户会话中使用 CGEventPost 模拟键盘和鼠标事件。请参考代码
//对于键盘
//对于鼠标
//登录前启动代理
CGEventPost 在登录前窗口中不起作用。如何解决?有没有替代方法?
shell - 唤醒时运行 plist
我一直在搜索并在启动站点上找到了选项。有没有办法启动.plist
机器唤醒?如果这是不可能的,有没有办法在不安装另一个包的情况下运行 shell 脚本而只使用普通 shell?
macos - 尝试在 LaunchAgent 中访问钥匙串密码时出现错误代码 9216
还有几个其他问题讨论了从 LaunchAgents 访问钥匙串。
其中一个关键是这里joensson提到你需要在你的应用程序列表中设置一个<SessionCreate>
。
我已经这样做了,现在我的应用程序 plist 看起来像这样:
该应用程序是一个 python 应用程序,它使用 pyinstaller 创建,使用 pkgbuild打包,并通过命令行安装。
从命令行运行时,应用程序运行良好。如果应用程序第一次运行,用户会收到允许访问钥匙串的提示,应用程序会从那里继续。
但是,当它作为LaunchAgent
. 这是我用来测试的确切命令序列:
在 python 脚本中,我一直在通过运行一些子命令并捕获输出进行调试。
该部分代码的输出如下所示:
这些相同的命令在命令行中可以正常工作,最后一个 ( -g
) 会提示允许访问钥匙串。
我也尝试com.ionicsecurity.client.sdk
在KeyChain Access
应用程序中打开条目,并设置“允许所有应用程序访问此项目”单选按钮。之后,从 cli 中获取值不再导致提示,但应用程序返回相同的错误代码。
我搜索了有关错误代码 9216 的信息,但没有结果。通过该实用程序运行代码security errors
只会给出
在作为 LaunchAgent 运行时如何让应用程序访问钥匙串的任何帮助将不胜感激!
macos - OSX:为当前用户加载单个启动代理的语法
我正在尝试加载单个用户的 LaunchAgent plist。目录下所有现有的plist文件都拥有用户和用户默认组的权限,
如果我对我的 plist 文件使用这些权限并尝试加载,我会得到
如果我将权限设置root:wheel
为相同的命令有效。
我想我要加载错误的方式,所以我尝试了这个:
但是从 100 行的输出来看,它似乎正在尝试加载每个存在的 plist 文件。
该工具的文档似乎表明这只会扫描 plist 文件~/Libraries
(见下文),
如何为当前用户加载 LaunchAgent?
macos - 在 OSX 中让 Launchd 重复运行脚本而无需等待之前的启动完成
假设我有下面的脚本
当我设置启动代理以每 2 分钟触发一次此脚本时... launchd 将等待脚本完成,然后再次触发它。因此,不是每 2 分钟(在 300 秒睡眠后)的日期,而是每 5 分钟或更长时间得到它。有没有办法让launchd每2分钟启动一次脚本,不管它是否完成?