问题标签 [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.
mysql - MySQL LaunchDaemon 未在 macOS El Capitan Server 上运行
我已经通过自制软件和这些说明安装了 MySQL 。homebrew 安装的服务是 LaunchAgent,它工作正常,但仅在我的用户登录时运行。我希望 MySQL 始终运行。
我尝试复制homebrew.mxcl.mysql.plist
到/Library/LaunchAgents
,将权限设置为 644 root:wheel,并使用sudo launchctl -w /Library/LaunchAgents/homebrew.mxcl.mysql.plist
. 虽然sudo launchctl list
显示 plist 已加载且状态为 0,但没有 PID。当我运行时ps aux | grep mysql
,我看不到任何相关进程。
手动运行命令有效:/usr/local/opt/mysql/bin/mysqld_safe --datadir=/usr/local/var/mysql --bind-address=0.0.0.0
但如果用户注销,MySQL 将退出。
已经有一个关于 stackoverflow 的相关问题,但似乎每个人都在回答如何通过 LaunchAgent 添加服务,该服务在登录时而不是在启动时运行。
/Library/LaunchDaemons/homebrew.mxcl.mysql.plist
ps辅助
启动ctl列表
objective-c - 在 macOS 中以编程方式启用、禁用和启动服务
我正在编写一个附带服务的程序。到目前为止,我所做的是创建一个帮助工具,它可以为我的进程运行提升的任务,并可以通过 XPC 进行通信。
我的程序与服务捆绑在一起,我想使用帮助工具来安装和启动/停止此服务,以便我的程序可以在设置中有一个复选框“使用系统启动服务”。
我可以成功复制服务的 plist,但我找不到任何方法来以编程方式启用、禁用、启动或停止服务。我认为调用的解决方案system("launchctl load /path/to/service.plist");
非常丑陋。目标 C 中是否有任何机制来完成此任务并获得成功或失败的结果?
macos - 在 osx 上删除应用程序包时删除 Launchd 服务
该应用程序需要运行具有 root 权限的二进制文件(服务),并避免在每次启动时询问权限,但仅在安装时询问权限。
为此,首先启动应用程序将在启动时设置服务。
问题是如何在删除应用程序包时删除该服务?
如果启动服务检测到应用程序被删除,它可以自行删除吗?
编辑:
即使服务正在运行并且它的二进制文件在包中,也可以删除应用包。到目前为止的实现是服务将定期检查它自己的路径是否存在,如果它不再有效,它会从launchctl中删除自己
bash - OSX - 通过 launchctl 为 Android Studio 设置环境变量 - 仅在第二次启动后有效
这是在我的 ~/.bash_profile 中,因为我需要 Android Studio / Gradle 才能访问这个变量。
有趣的是,我第一次启动 Android Studio 时没有设置该变量,但第二次总是设置。
我做错了什么,它不能一直工作/第一次?
python - 如何检查`.plist`文件中的错误
我一直无法弄清楚为什么launchctl
说这.plist
是无效的。
我正在尝试每天早上 8 点运行一次 Python 脚本。第一个程序参数是 pyenv virtualenv 二进制文件的路径,第二个是我的 Python 脚本。
有没有一种方法可以验证我在这个.plist
文件中的正确或错误?launchctl
它返回的错误并不明显,它只是:
无效的属性列表。
我知道有一些工具可以创建和管理这些工作,但我想更好地了解幕后发生的事情。
这是我的.plist
:
bash - LaunchDemon 未从 shell 脚本加载
我有一个小的 shell 脚本,它加载了一个 launchctl com.skull.tst.plist。但是当我运行脚本时它没有加载launchctl。我正在使用 sudo 获得回声匹配和运行脚本。
当我在终端中复制 sudo /bin/launchctl load -wF /Library/LaunchDaemons/com.skull.tst.plist
时,它可以正常工作并加载。
为什么它没有加载 shell 脚本?
macos - launchctl getenv 命令返回一个空的 PATH
当我跑
在终端中,我总是得到一个空字符串作为响应。我尝试使用
由于 with sudo
,系统环境被查询,但我仍然得到一个空字符串。我错过了什么吗?那不应该返回我的 PATH 或至少返回系统 PATH 吗?就像是
我在这里查看了很多答案,它们似乎都暗示原始命令应该返回一个路径而不是什么。
macos - 启动后如何重新启动docker-machine?
我正在使用不支持最新 Docker for Mac 的 MacBook Pro 2009。因此,我正在使用 Docker Machine 方法为我的机器启动并运行 Docker。
以下是我用来在我的机器上安装 Docker 的命令:
上面的命令没有错。每次我运行最后一个命令时,Docker 进程都会启动并完美运行。
但是,当我重新启动主机(MacBook)时,Docker 机器已经死了,我看到了Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
错误。
我尝试在下面放两行,.bash_profile
但没有用(是的,我已经source
这样做了):
我还尝试创建一个 LaunchDaemons .plist 文件以在启动时运行 bash 脚本,但它也不起作用:
bash 脚本:
命令是:
每次启动或重新启动 MacBook 时如何重新启动 Docker Machine?
macos - 如何使用launchtl启动守护进程?
我正在尝试使用以下启动守护程序并运行Path had bad ownership/permissions
,如何解决此问题并启动并确保它正在运行?
以下是 plist 上的权限