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.%Pkern.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管理服务的主要内容,如果未能解决你的问题,请参考以下文章

Mac下开启FTPserver

Mac服务管理-Launchd(转)

使用launchdlaunch agents和launchctl,Apple Mac OSX Plist可实现更好的文件夹操作

如何在mac上打开FTP服务

macos

Mac OS X NTP 服务开启与关闭