Mac下使用launchctl管理服务
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mac下使用launchctl管理服务相关的知识,希望对你有一定的参考价值。
参考技术A 与Linux下的systemctl类似,可以管理服务。通过在特定目录下添加plist文件来添加服务,plist文件就是一个xml文件,可以使用xcode进行编辑,也可以用文本编辑器编辑。
设置RunAtLoad字段(与KeepAlive同级)为true
设置KeepAlive字段为true,这样就不用设置RunAtLoad字段了
注意:如果之前load过,要先unload
停止:
启动
参照上面的例子指定标准输出或标准错误流到某个文件
可以通过man了解更多信息,例如
Mac Catalina 核心文件位置
【中文标题】Mac Catalina 核心文件位置【英文标题】:Mac Catalina corefile locations 【发布时间】:2019-11-13 19:29:08 【问题描述】:我有一个在 Mac Catalina 下出现段错误的程序,但核心文件没有显示在 /cores 中。我检查以确保核心文件大小不受限制,并且通过创建 /etc/launchd.conf 文件(其中包含“限制核心无限”)和执行“launchctl”来启用核心文件。这些都没有任何效果。
有人知道如何在 Catalina 下重新启用核心文件,和/或它们的存储位置吗?
【问题讨论】:
【参考方案1】:我最近升级到了 macOS Catalina,尽管sysctl -a
报告了预期的kern.corefile: /cores/core.%P
和kern.coredump: 1
,但我仍然无法获得核心转储,这让我感到很困惑。并在我的交互式 shell 中运行 ulimit -c unlimited
。我最终将问题追溯到具有rwxr-xr-x
权限的/cores 目录。一旦我完成了sudo chmod 1777 /cores
,我就能够以非 root 用户身份创建核心转储。
【讨论】:
【参考方案2】:看来/bin/
中的文件是不允许抛核的。
如果您将sleep 50000&
调用到kill -11 %1
,则不会生成核心转储。
如果您事先将程序复制到/tmp/
,它会。
因此,使用 SIG11 终止睡眠以验证核心文件生成的有用技巧不会轻易奏效。
似乎在同一外壳中杀死后台进程并不会在所有情况下产生核心转储。
【讨论】:
以上是关于Mac下使用launchctl管理服务的主要内容,如果未能解决你的问题,请参考以下文章
使用launchdlaunch agents和launchctl,Apple Mac OSX Plist可实现更好的文件夹操作