问题标签 [launchctl]

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 投票
2 回答
4204 浏览

macos - tftpd 不工作 - MAC OS X El Capitan 10.11.5

作为我工作的一部分,我每天都使用 tftp。到目前为止,一切都很好,从昨天(2016 年 6 月 21 日)开始,它就不再起作用了。我不知道确切的原因,因为在讨论这个问题的人都找不到任何支持(是因为没有其他人像我一样使用 tftp 来使用 Apple 刷新路由器吗?)。

我启动 tftpd 的基本程序:

然后我将固件放在“/private/tftpboot”目录下,该目录已经设置为模式 0777。

为了下载固件,过程很简单:

正如您可能猜到的那样,“传输超时”对我来说并不是一件好事。

查看带有尾部的“/var/log/system.log”,我可以在循环中看到以下消息(说真的,这是一个巨大的消息量,我的 SSD HD 几乎烧毁了,因为日志写入时这种高密集 I/O) :

因为它是一个不间断的服务,导致密集的 I/O,我不得不停止它,这是我一直做的通常的过程:

我需要这个工具,因为我正在研究它。您能否评估正在发生的事情?也许某些操作系统更新将这种错误行为带到了 tftpd?

运行绑定到 UDP/69 的 tftpd 的 Docker 容器都无法工作。我什至擦除了我所有的磁盘内容并尝试进行全新的 OS X 安装,认为某种错误的更新导致我的系统出现混乱。

笔记:

  1. 已经在禁用系统完整性保护(无根)的情况下尝试过:

  2. 已经尝试使用“sudo”运行 launchctl 启动程序(如上所述)。

  3. 为了获得更多意见,我从Ask DifferentServer Fault中复制了这个问题。

谢谢您最好的问候。

0 投票
1 回答
307 浏览

macos - 在 MacOS Sierra 上安装 Pow for Rails 4 挂起

我一直在尝试在 MacOS Sierra 上安装 pow(用于 Rails),但是在提供要求 root 权限的密码后它被挂起。

根据当前的文档,它应该在给出密码后显示以下几行:

所以,我在等待超过 35 分钟后取消了它,我发现它没有创建 Pow 安装程序脚本中引用的文件 /Library/LaunchDaemons/cx.pow.firewall.plist:

有什么想法可以解决这个问题吗?我如何或在哪里可以得到这个文件?

谢谢


2016 年 12 月 30 日 20:32

仍在处理这个问题,我发现脚本卡在以下行:

在我在第一条评论中提到的代码块之前。

这些变量的值是:

有什么想法可以解决这个问题吗?

谢谢


2016 年 12 月 30 日 23:58

我应用以下链接中描述的说明:

http://blog.radi.ws/post/123989557948/running-pow-050-on-os-x-el-capitan-1011-beta

但仍然无法正常工作。


2018 年 2 月 20 日 09:40

我解决了在我的 Mac 上安装新的 macOS Sierra 的问题。

0 投票
1 回答
29 浏览

macos - 在 OS 负载上启动 Mac 应用程序将不起作用

我正在尝试创建一个 plist 文件,以放入用户 Mac 的 LaunchAgents 中。我将使用这个 plist 来确保它在每次 Mac 开机或用户登录时打开一个特定的应用程序。据我所知,我很确定 plist 应该像现在这样工作,但事实并非如此。每当我重新启动我的 Mac 或注销并再次登录时,什么都没有发生。

为了更容易与其他 Mac 进行比较,我正在尝试打开常规的计算器应用程序,该应用程序位于所有 Mac 上。

要列出我目前所做的事情,请在下面制作 plist 并将其命名,open.plist同时我将它放在 LaunchAgents 文件夹中,该文件夹位于我的 Mac 的库文件夹中。

这是我目前的清单。

基本上,这个想法是在 LaunhAgents 中有这个 plist,然后让它在 Application 或 Documents 文件夹中加载一个应用程序。

0 投票
2 回答
2110 浏览

macos - 以编程方式在 OS X/MacOS 上设置 maxfile

如果我使用's命令查看maxfiles选项(在我的 OS X El Cap 机器上)launchctllimit

似乎有 256 的软限制和“无限制”的硬限制。我想将软限制更改为类似2048,并保持硬限制不变。当我查看limit的论点时

看来我可以为同一事物设置两个限制,或者为软和硬设置一个值。但是,如果我尝试设置无限制的硬限制。

我最终得到了 10240 的奇怪值

这里发生了什么?是否可以设置无限的值?如果不是,那是launchctl limit命令的限制,还是系统级别的限制?如果是后者,那么所有这些unlimited报告的初始值是多少?还是这个苹果就是苹果?

对于奖励积分 - 有谁知道为什么这个限制首先设置得如此之低?

0 投票
0 回答
123 浏览

python - 从 Python 访问 macOS 环境变量

launchctl我用命令设置了一堆环境变量:

为了取回价值,我可以使用:

但是,我无法TEST从 Python 使用os.getenv('TEST')(甚至从 Bash using echo $TEST)访问 的值。我确实知道 macOS 如何管理环境变量(launchctl和 Bash 环境变量之间的区别等),所以我理解为什么这些命令不返回TEST.

我的问题是:有没有办法在launchctl不使用的情况下访问使用 设置的环境变量subprocess?使用subprocess不是不行,我宁愿避免为了获取环境变量而抛出大量进程:)

0 投票
0 回答
515 浏览

python - 使用启动代理运行时无法在 python 脚本中导入模块

我写了一个 python 脚本,如果我正常运行它就可以工作(python path/to/file.py)。我需要它每隔几个小时自动运行一次。因此,我在 /Users/User/Library/LaunchAgents 中创建了一个 plist 文件,该文件触发了一个 .sh 文件,该文件最终触发了 python 脚本。

python 脚本无法在没有错误的情况下运行。我设法将问题缩小到模块“PyPDF2”和“reportlab”(如果我排除这些模块,脚本运行良好)。我收到的错误消息显示“没有名为 reportlab.pdfgen 的模块”和“没有名为 PyPDF2 的模块”。

代码的相关部分是:

.sh 脚本:

Python脚本:

同样,如果我自己运行脚本,它就可以工作。我的猜测是,launchctl 以 root 身份运行,而 root 不知何故无法找到/访问模块。我已经进行了广泛的搜索,但找不到任何东西。

我对此比较陌生,可能会遗漏一些明显的东西?

我在 Mac 上运行 2.7 版的 python 脚本。

这里似乎有什么问题?

感谢您的帮助

更新:如果我将 print(sys.path) 放入代码中并自己运行它以及使用触发器,我两次都会得到一长串路径。其中一些是相同的,但大多数是不同的。我也跑了

我自己和使用触发器。虽然如果我自己运行模块会显示,但如果我使用触发器则不会。

给我“/usr/local/lib/python2.7/site-packages/reportlab/init .pyc ”和“/usr/local/lib/python2.7/site-packages/PyPDF2/init .pyc ”。我尝试运行 sys.path.append("/usr/local/lib/python2.7/site-packages/PyPDF2/ init .pyc") sys.path.append("/usr/local/lib/python2.7/ site-packages/reportlab/ init .pyc") 在我被触发时在脚本中,但它似乎没有帮助。

0 投票
1 回答
308 浏览

python - macos中的launchctl脚本触发时无法导入Python模块

想要通过launchctl脚本触发的python程序(apple.py),python2.7下写在anaconda

用于触发python程序的launchctl plist脚本(com.tushare.refreshall.plist)

我尝试使用plist脚本启动我的python程序但徒劳无功,在程序中,我导入了一个包tushare,但是在日志文件“stderr”中返回“ImportError:No module named tushare”,这个包可以成功导入用anaconda编写的python程序。

结果:

猜猜可能是由于 plist 脚本中缺少“EnvironmentVariables”参数,但我不知道如何修改 plist 脚本来解决问题。每次,我都会执行以下脚本。用 Plist 脚本检查语法,它可以被执行。

0 投票
0 回答
768 浏览

macos - 如何检测 USB 断开连接并执行 shell 脚本 mac osx

将以下 plist 添加到 /Library/LaunchAgents 后,它将在连接的 USB(自定义设备)上启动我的应用程序。

但是在 USB 断开连接时,无论应用程序状态如何(打开/关闭),我都需要重新加载上述 plist 文件以使守护进程返回以侦听 USB 连接。我尝试了很少的可能性,但仍然有效。如果我将密钥 LaunchOnlyOnce 更改为 false,则应用程序会在仍连接电缆时在应用程序关闭时继续重新打开,不希望发生这种情况。

0 投票
1 回答
272 浏览

launch-daemon - LaunchAgent 故障排除(LaunchAgent 未开始加载)

我在启动 LaunchAgent 时遇到了问题,并在 Google 上搜索了很多,并找到了多种解决问题的方法,为了他人的利益,将它们全部记录在一个地方

0 投票
2 回答
259 浏览

networking - macOS Sierra:网络变化时重新加载防火墙

每当网络发生变化时,我一直在尝试重新加载 pf 规则。这是我的 plist 文件。/Library/LaunchAgents/com.wwk.networkchange.plist

我可以看到 /private/var/run/resolv.conf 在更改网络接口但根本没有重新加载 pf 规则时发生了更改。仅供参考,/Users/wwk/pf.conf 在那里,我已经通过 /etc/sudoers 文件启用了 /sbin/pfctl 无需密码提示。提前感谢!