问题标签 [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 投票
1 回答
1472 浏览

macos - 显示非零退出代码的 launchctl 进程

我正在尝试在我的 Mac 上运行一个运行简单 python 脚本(打开浏览器窗口)的 launchctl 进程,但它没有运行。这是我正在采取的步骤:

  1. 将 plist 文件保存到 ~/Library/LaunchAgents
  2. launchctl 卸载 org.name.open-browser.plist
  3. launchctl 加载 org.name.open-browser.plist
  4. launchctl start org.name.open-browser

但是,浏览器窗口没有打开。当我运行时,launchctl list org.name.open-browser我得到以下输出:

LastExitStatus应该是0对的?19968 是什么意思?我可能在这里做错了什么?

我有一台运行 OSX El Capitan 的 2014 年中期 macbook pro。也许升级到 Sierra 可能会有所帮助?

0 投票
1 回答
1243 浏览

macos - launchctl config 用户路径有什么作用?

我在 MacOS 中遇到了一个奇怪的 PATH 环境变量问题,我花了几个小时来调试:

  • 前段时间,当我尝试修复 IntelliJ 终端 PATH 变量与 iTerm 不同的问题时,我按照在线文章执行了以下操作:

    sudo launchctl config user path $PATH

  • 显然,该命令在某个时间点设置并保留 PATH 变量的值,并且即使在我启动新的 zsh 会话时加载我的 shell 之前,该变量也会被加载。直到最近我才意识到这个问题,因为我删除了我zshrc的一些路径位置设置并且PATH变量仍然没有反映

  • 我的问题是该命令将PATH变量值存储在哪里?以及它如何在我的 shell 加载之前加载该值?

(对于想知道我如何解决问题的人:我再次执行命令将路径设置为空值sudo launchctl config user path '':)

0 投票
1 回答
2154 浏览

macos - 通过命令行在 High Sierra 上使用 launchctl 加载 .plist

概述:

我正在尝试为一套 MacMini 在教学套件中运行执行以下操作。

全新安装后(使用 Apple 远程桌面和 bash 脚本)

  1. 安装一些应用程序(Chrome、Logic、Imovie)
  2. 创建用户(本例为 u:p 学生/学生)
  3. 向该用户添加家长控制,并限制他们可以使用的应用程序。
  4. 修改 Dock(通过 plist 文件)以仅显示我们想要的应用程序,并在每次启动时运行它(以防止学生为下一个用户搞砸它)

我有 90% 的工作,但完全被困在试图让我的 plist 工作和加载。

它可以在我的计算机(也是 10.13)上运行并且加载正常,它可以在同一个 mac 上以管理员身份加载它。尝试以用户身份加载它不起作用。

当前进程

  1. 在下面运行 Bash 脚本:

    /li>

这部分一切正常,我得到了一个用户,我得到了主目录,我将停靠脚本复制到/usr/local (当从命令行以用户身份运行时它可以工作)

  1. 我将我的 plist 文件复制到该位置/Users/student/LaunchAgents/
  2. 确保其归学生所有:员工
  3. 确保它是 644 权限
  4. 停靠脚本是可执行的并由学生用户拥有,这可以作为学生用户从命令行运行(通过 ssh 会话)

这个,行不通(我试过很多方法)

/Users/temp/Library/LaunchAgents/com.mitsuite.login.plist: Operation not permitted

我也试过

Could not find domain for

这些给了我各种错误,system.log主要是这样的:

我尝试在不添加任何家长控制(通过管理面板,没有脚本编写乐趣)的情况下创建标准用户并遇到相同的问题。

我的 Plist 看起来像这样:

更新:

作为测试,我在同一台计算机上创建了一个管理员用户,然后运行它,一切正常,加载 plist 并在启动时运行。

如何让标准用户通过命令行安装 plist?

更新 2:

从另一个 Stackoverflow 问题中,我已将用户名添加到 .plist 文件中,然后将其放在 /Library/LaunchDaemons 中,这一切都在 root 运行时运行 launchctl load /Library/LaunchDaemons/com.mitquite.login.plist

然而,这似乎违反直觉(除非它的意图是因为标准用户无法安装应用程序?)

0 投票
1 回答
3337 浏览

macos - mac 目录上的 jenkins slave 无法访问

我正在尝试使用以下命令在 mac mini 上启动 jenkins slave/Library/LaunchDaemons/com.jenkins.ci.plist

然后 sudo launchctl load /Library/LaunchDaemons/com.jenkins.ci.plist

但在/Users/jenkins/error.log

我懂了

我已经打开了/Users/jenkins/jenkins_slave/仍然777收到此错误。

如果我以用户身份在 mac 上运行以下jenkins操作,它可以工作

/usr/bin/java -Djava.awt.headless=true -jar /Users/jenkins/agent.jar -jnlpUrl http://jenkins2.domain.net:8080/computer/jenkins-mac/slave-agent.jnlp -secret 23erft6yhujnhyujnbftyujbvcdrtyhbvcxswedaw -workDir "/Users/jenkins/jenkins_slave/"

有人知道这里有什么问题吗?

系统软件概述:

0 投票
1 回答
1641 浏览

macos - launchctl load -w 没有那个文件或目录

我正在尝试使用launchctl在mac中为getintraday.py设置一个自动程序。

1.创建run.sh

转到 getintraday.py 目录

以下是run.sh:

然后保存并相当

2.创建plist文档

去~/Library/LaunchAgents,创建com.demo.plist

以下是创建 com.demo.plist:

  1. 加载命令

    launchctl 加载 -w com.demo.plist

但我得到/Users/yindeyong/Desktop/Django_Projects/pythonstock/com.demo.plist: No such file or directory

0 投票
1 回答
3730 浏览

macos - launchctl 无法运行二进制文件并以代码 78 退出

我一直在用系统托盘 GUI构建一个 golang应用程序。我想launchctl在登录时运行我的程序。程序编译并运行没有任何错误,但是,当launchctl运行它时,我看到:Service exited with abnormal code: 78. 也许这与权利有关。

  • 首先,我尝试设置当前用户对plist文件和二进制文件的权限。仍然错误78

  • 然后我将plist文件和二进制文件的权限更改为root并运行sudo launchctl。我仍然看到错误78

/var/log/system.log有这个错误:

plist文件本身是:

错误日志为空。

当我手动运行二进制文件时,应用程序的图标出现在系统托盘上,正如预期的那样。

有一个有趣的时刻——如果我手动输入launchctl load -w com.test.test.plist,应用程序运行良好——直到重新启动。我重新启动后,launchctl抛出78错误。

为什么会这样?

0 投票
0 回答
4441 浏览

macos - Brew服务启动和停止问题

我有两个服务一个是elasticsearch,另一个是mongodb,最近我发现mongodb服务在我启动或停止时出现了一些问题。

这种情况是当我使用以下命令启动 mongo 时,实际上停止了 mongodb 服务。 brew services start mongodb,它显示我遵循错误代码,但它已启动 ----------错误代码------------- /Users/attis/Library/LaunchAgents/homebrew.mxcl.mongodb。 plist:服务已加载错误:执行时失败;/bin/launchctl bootstrap gui/501 /Users/attis/Library/LaunchAgents/homebrew.mxcl.mongodb.plist以 133 退出。

当实际启动 mongodb 服务时,我使用以下命令停止 mongo。它向我显示了以下错误代码,但在它之后停止了。---------错误代码--------------- 错误:服务mongodb未启动。

我不熟悉launchctl机制。任何人都可以建议帮助我解决烦人的问题。特别是当我启动所有服务时,它将阻止在 mongodb 启动之后启动的所有以下服务。

开始时,图片还带有黄色警告提示

0 投票
0 回答
157 浏览

python - textract.process 在通过终端调用时工作正常,但在通过 launchctl 启动相同的代码时失败

概括 :

我正在尝试使用 textract 解析 PDF。textract.process 在通过终端调用时工作正常,但在通过 launchctl 启动相同的代码时失败

错误信息 :

该命令pdf2txt.py /Users/xxxxxxxxxx/Downloads/a.pdf失败,因为 pdf2txt.py您的系统上未安装可执行文件。请确保在使用 textract 之前安装了适当的依赖项:http: //textract.readthedocs.org/en/latest/installation.html

这是通过终端启动时(由我的 python 代码中的 sys.path 记录)的路径:

这是通过 launchctl 启动时的路径(在我修改 sys.path 之前由 sys.path 在我的python代码中记录):

这是我在修改 sys.path 以包含上面列出的所有内容后记录 sys.path 时的路径:

这是 .plist :

0 投票
0 回答
279 浏览

python - 如果我在 macOS 上通过 launchctl 启动守护程序,Pynput 将无法工作

我使用 launchctl 来启动我的 py 代码的守护进程:

然后我ps aux | grep testpynput启动了守护进程:

但是键绑定不起作用,但是如果我在 iTerm2(macOS 上的终端应用程序)中使用完全相同的代码,它就可以工作,我的意思是我直接在 iTerm2 中执行以下代码:

直接执行命令

我意识到 macOS 有一些限制macOS 的限制,其实我一开始并没有将 iTerm2 添加到System Preferences→<code>Security & Privacy→<code>Accessibility,即使我testpynput.py直接在 iTerm2 上执行也不起作用,但是在我将 iTerm2 添加到之后Accessibility,这种方式可以正常工作: mac-辅助功能

所以我把

或者

到 System System Preferences→<code>Security & Privacy→<code>Accessibility,这就像我把 iTerm2 放到 Accessibility 对吧?,但两者都不起作用。

那么,你们知道我该如何解决这个问题吗?

我会把我的代码放在这里:

testpynput.py

config2.json

com.bruce2.PicUploaderHelper.plist

放入com.bruce2.PicUploaderHelper.plist/Library/LaunchAgents确保您需要将其所有者设置为root:wheel

然后通过 sudo 或 root 权限运行:

这是文件中的代码: PicUploaderHelper-macOS.zip

Python2.7也是一样,我试过了。

macOS:10.14.1 (18B75)
python2:Python 2.7.15
python3:Python 3.7.2
iTerm2:3.2.7

0 投票
1 回答
317 浏览

python - 尝试使用 launchd 运行 python 脚本时获取状态 78 launchctl

我正在尝试在 MAC OS X 上运行带有 launchd 的 python 脚本;但是,脚本没有运行。当我用 launchctl 检查状态码时,它是状态码 78。

该脚本应该每 60 秒运行一次,但它根本没有运行。