防止/禁止 macOS 在 shell 脚本运行时关闭

Posted

技术标签:

【中文标题】防止/禁止 macOS 在 shell 脚本运行时关闭【英文标题】:Prevent/inhibit macOS from shutting down while a shell script is running 【发布时间】:2019-08-26 20:30:30 【问题描述】:

有没有办法在特定 bash 脚本运行时防止在 macOS 上关机而不更改实际的关机命令?

This 问题有一些基于 linux 的解决方案,可能会通过别名关闭命令来工作,但我只是谨慎地这样做。将其称为缺乏知识以及不想改变超出我需要的程度的愿望。

This 问题本质上是问我在问什么,但接受的(也是唯一的)答案仅与睡眠有关。

理想情况下,解决方案将提供某种方法来防止从正在运行的 bash 脚本中关闭。如果这是不可能的,那么在其他地方需要最少更改的答案将是最好的。

【问题讨论】:

这是一种丑陋且非常糟糕的做法,但您可以查看此处并执行类似的操作,例如重命名 /sbin/shutdown 命令使其无法运行...***.com/a/24202568/2836621 @MarkSetchell 是的,这似乎是一种可靠的方法,尽管您对更新的看法是一个问题。希望有一种更优雅/更强大的方法来做到这一点,但这可能最终成为唯一的解决方案。 【参考方案1】:

您可能正在寻找的命令是:

sudo systemsetup -setcomputersleep Never

由于我们在这个主题上,您可以使用以下命令获取实际状态:

sudo systemsetup -getcomputersleep

希望这些对你有帮助。

编辑:我刚刚发现这篇优秀且更完整的文章:How to customise the power settings from Terminal on the Mac。

【讨论】:

不知道 pmset 并且将来可能会有所帮助,但是这些方法似乎都是为了防止计算机进入睡眠状态。我试图阻止/禁止shutdown。是否有我缺少的 pmset 选项? 对不起。我误读了你的帖子,我的印象是你想阻止计算机进入睡眠模式。 别担心,知道 pmset 的存在肯定会加分。

以上是关于防止/禁止 macOS 在 shell 脚本运行时关闭的主要内容,如果未能解决你的问题,请参考以下文章

如何在 macOS Catalina 的应用程序包中运行 shell 脚本

共享一个防止脚本重复启动的shell脚本

VS Code 中不能运行脚本(因为在此系统上禁止 运行脚本)

macos shell脚本不返回控制

防止多个用户在 macOS 上同时运行应用程序

一个简单的禁止ssh暴力登录Shell脚本