问题标签 [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.
macos - 显示非零退出代码的 launchctl 进程
我正在尝试在我的 Mac 上运行一个运行简单 python 脚本(打开浏览器窗口)的 launchctl 进程,但它没有运行。这是我正在采取的步骤:
- 将 plist 文件保存到 ~/Library/LaunchAgents
- launchctl 卸载 org.name.open-browser.plist
- launchctl 加载 org.name.open-browser.plist
- launchctl start org.name.open-browser
但是,浏览器窗口没有打开。当我运行时,launchctl list org.name.open-browser
我得到以下输出:
那LastExitStatus
应该是0
对的?19968 是什么意思?我可能在这里做错了什么?
我有一台运行 OSX El Capitan 的 2014 年中期 macbook pro。也许升级到 Sierra 可能会有所帮助?
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 ''
:)
macos - 通过命令行在 High Sierra 上使用 launchctl 加载 .plist
概述:
我正在尝试为一套 MacMini 在教学套件中运行执行以下操作。
全新安装后(使用 Apple 远程桌面和 bash 脚本)
- 安装一些应用程序(Chrome、Logic、Imovie)
- 创建用户(本例为 u:p 学生/学生)
- 向该用户添加家长控制,并限制他们可以使用的应用程序。
- 修改 Dock(通过 plist 文件)以仅显示我们想要的应用程序,并在每次启动时运行它(以防止学生为下一个用户搞砸它)
我有 90% 的工作,但完全被困在试图让我的 plist 工作和加载。
它可以在我的计算机(也是 10.13)上运行并且加载正常,它可以在同一个 mac 上以管理员身份加载它。尝试以用户身份加载它不起作用。
当前进程
在下面运行 Bash 脚本:
/li>
这部分一切正常,我得到了一个用户,我得到了主目录,我将停靠脚本复制到/usr/local
(当从命令行以用户身份运行时它可以工作)
- 我将我的 plist 文件复制到该位置
/Users/student/LaunchAgents/
- 确保其归学生所有:员工
- 确保它是 644 权限
- 停靠脚本是可执行的并由学生用户拥有,这可以作为学生用户从命令行运行(通过 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
然而,这似乎违反直觉(除非它的意图是因为标准用户无法安装应用程序?)
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/"
有人知道这里有什么问题吗?
系统软件概述:
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:
加载命令
launchctl 加载 -w com.demo.plist
但我得到/Users/yindeyong/Desktop/Django_Projects/pythonstock/com.demo.plist: No such file or directory
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
错误。
为什么会这样?
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 启动之后启动的所有以下服务。
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 :
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
,这种方式可以正常工作:
所以我把
或者
到 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
python - 尝试使用 launchd 运行 python 脚本时获取状态 78 launchctl
我正在尝试在 MAC OS X 上运行带有 launchd 的 python 脚本;但是,脚本没有运行。当我用 launchctl 检查状态码时,它是状态码 78。
该脚本应该每 60 秒运行一次,但它根本没有运行。