问题标签 [launchd]
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 - 无网络连接时启动 NetworkState
任何熟悉launchd
Mac OS X 的人,特别是文件部分的NetworkState
( bool
) 键?KeepAlive
.plist
从man
页面中,launchd
当 Mac 上没有网络连接时,当 plist 配置如下时,应该调用可执行文件:
这似乎可以正常工作,但是,一旦建立了有效的网络连接(定义为 Mac 具有至少一个非环回 IPv4/6 地址),launchd
应该停止调用可执行文件(因为NetworkState
标志应该阻止它)。
但是,我看到的行为是,无论Mac 的网络连接如何,都会launchd
继续调用我的程序!就好像完全无视国旗一样。launchd
NetworkState
有谁知道如何进行这项工作,以便launchd
仅在没有网络连接时调用程序,并在建立网络连接后停止调用它?
macos - 在 Mac OS X 10.6 上通过 /etc/launchd.conf 设置全局环境变量不起作用
我正在尝试在 Mac OS X 10.6 上设置一些全局环境变量,以便为应用程序和 shell 会话设置它们。
到目前为止,我已经尝试了以下方法:
- 编辑 /etc/launchd.conf
- 创建 ~/.MacOSX/environment.plist 并将它们放在那里
- 编辑 /etc/profile
这些都不起作用!我发现最令人惊讶的是 /etc/launchd.conf 因为它似乎对所有尝试过它的人都有效。有什么合乎逻辑的理由为什么它不适合我吗?
process - 什么是“jetsam 优先事项”?
有人可以解释什么是“jetsam 优先事项”吗?
它们是由launchd强制执行的。我怀疑它们是为特定进程限制 CPU 的一种方式,但我不确定。
ios - 在IOS上使用launchd重启应用
我在博物馆展览中使用一些 iPad,运行其他人开发的应用程序。尽管我们已经介绍了 Home 按钮,但我发现应用程序偶尔会崩溃,将用户留在主屏幕上。从这里他们可以访问其他未经授权的应用程序。
如果 iPad 越狱能给我们提供我们需要的解决方案,博物馆并不反对越狱,所以我一直在研究使用带有 KeepAlive 标签的 launchd 并将 .plist 文件放入 /Library/LaunchAgents 目录的想法阻止应用程序在崩溃时关闭或重新生成它
到目前为止,我已经成功地使它与 iPad 附带的默认应用程序以及 Cydia 安装的应用程序一起工作,但我无法让它重新启动我们想要的应用程序。我已经从 /User/Applications 目录和 /Applications 尝试过,有人建议这可能会有所作为,但没有乐趣。有人可以提出一个可能的解决方案还是我在浪费时间?我从下面的 plist 文件中插入了 XML。
macos - 在 OS X 中使用 launchd 加载和配置内核扩展
我正在为套接字过滤编写网络内核扩展。为了使其可配置,用户态程序读取配置文件并通过PF_SYSTEM
套接字将信息传递给 kext。
如果我想在系统启动时尽快启动并运行套接字过滤器,我将如何设计启动?
我目前的想法是使用 launchd 来启动一个小的用户空间初始化程序。该程序将用于kextload
启动 kext。之后,它将读取配置文件并通过PF_SYSTEM
套接字与 kext 对话。完成工作后,它会迅速退出。
另一种选择是有两个launchd
项目,一个用于 kext(使用kextload
),另一个用于用户区配置文件阅读器。这将避免分叉,但否则将是相同的。无论哪种方式,launchd
都必须运行一个快速的非守护程序用户空间程序。
然而,launchd
似乎是为了启动实际的守护进程,而不是为了完成工作和退出的快速任务。开发人员库文档说:
重要提示:如果您的守护程序在启动后关闭得太快,launchd 可能会认为它已经崩溃。继续这种行为的守护进程可能会被挂起,并且在未来的请求到达时不会再次启动。为避免此行为,请在启动后至少 10 秒内不要关闭。
这给我的印象launchd
是这样做不是正确的方法。我应该如何组织发布?我的整个想法是否朝着错误的方向发展?
(作为旁注,我想让用户也可以在运行时更改过滤选项。我想这可以通过在需要更改时打开到 kext 的新 PF_SYSTEM 套接字连接来完成。)
iphone - 自动备份 JailBreak iPhone DCIM 照片目录
嗨听说你可以将 cron 作业写入 plist 并以 plist 格式将其放入 JB iPhone /Library/LaunchDaemons 文件夹
我想每 300 秒备份一次照片文件夹,所以我将这样的 com.backup.plist 放入 /Library/LaunchDaemons 文件夹
我创建了一个 /private/var/backup 文件夹,访问权限为 777 mobile:mobile
我重新启动了 iPhone,但是脚本不起作用
失败是指“cp”命令访问权限吗?还是应该将 /private/var/backup 文件夹访问权限更改为其他内容?
顺便说一句,我正在运行 iOS 4.3.3 越狱 iPhone 4
非常感谢阅读
macos - 如何调试启动时不运行的 Launchd 脚本?
我有一些来自自制软件的 Launchd 脚本。但是,当我重新启动计算机时,我必须手动运行它们:
我认为这应该在启动时发生。我错过了什么?
macos - PATH 设置在 launchd.conf 以外的某个地方,我不知道在哪里
如何为用户会话(不仅仅是终端)中的所有程序设置 PATH 的问题已经出现并得到解决。所以我更改了 /etc/launchd.conf 和 /etc/paths,只是为了确保一切正常。但是,当我启动终端时,我仍然得到一个不同的 PATH 环境变量(我完全不确定如何从另一个应用程序测试 PATH。)
这是 /etc/launchd.conf 中的内容:
这是 /etc/paths 中的内容:
加上 /etc/paths.d/ 中的几个文件:
X11:
选择:
现在,当我启动一个新的终端时,我得到的是:
我检查了我的 .bashrc 和 .bash_profile,我没有 .profile,并且我检查了 /etc/profile 和 /etc/bashrc 并且它们都没有触及 PATH 环境变量。
我好难过。
macos - plist 用于在启动时在 Mac 上自动启动 tomcat
我想使用 Mac mini 作为服务器。所以我已经安装了tomcat,我希望它在启动时自动启动。在 Windows 上,这称为“服务”。我是 Mac OS 的新手,但我读到这是 /Library/LaunchDaemon 文件夹中的 plist 文件。
所以我找到了以下链接:https ://gist.github.com/661713 我复制了文件并插入了正确的路径。
但是当我尝试启动时
launchctl load /Library/LaunchDaemons/org.apache.tomcat.plist
我收到以下错误:
launchctl: no plist was returned for: /Library/LaunchDaemons/org.apache.tomcat.plist
launchctl: no plist was returned for: /Library/LaunchDaemons/org.apache.tomcat.plist
nothing found to load
ios - 使用 Jenkins/Hudson 作为 iOS 和 Mac 开发的持续集成时,钥匙串中缺少证书和密钥
我正在尝试改进适用于 iOS 的 Hudson CI,并在系统启动后立即启动 Hudson。为此,我使用以下启动脚本:
这可以正常工作,但是当由 Hudson 启动的 xcodebuild 尝试签署应用程序时,它会失败,因为它无法在钥匙串中找到正确的密钥/证书。但是,如果我从命令行启动 Hudson,密钥/证书对就在那里,因为它工作正常。
你有什么想法为什么会发生?