欢迎各位兄弟 发布技术文章
这里的技术是共享的
我自己亲自做的做法是: ok 有大用 有大大用
1) 桌面上建一个脚本 chang_liang.sh
#!/bin/bash
#
/usr/bin/caffeinate -di
2) chmod 777 chang_liang.sh
3) 用户=>启动项里面 增加 脚本程序 chang_liang.sh
一个用户的对 macos 13 做法 有大用
1) 在普通的管理员帐户下 启用 root 用户,进 root
2) 进系统偏好设置=>屏幕保护程序
3) 退出root用户,进普通的管理员帐户下,停用root用户
我自己亲自做的做法是: 有大用
1)
在macOS中,使屏幕不熄屏(即保持屏幕常亮)可以通过多种方法实现。以下是几种常见的方法:
打开系统偏好设置:点击屏幕左上角的苹果图标,选择“系统偏好设置”。
进入节能设置:在系统偏好设置窗口中,点击“节能”图标。(有些是 "电池" 图标)
调整显示器睡眠时间:
如果你正在使用电源适配器供电,切换到“电源适配器”标签页。
找到“如果可能,使显示器进入睡眠”选项,将其滑块拖动到最右侧,选择“永不”。这样,当电脑连接电源时,屏幕将不会自动熄灭。
如果你还希望在使用电池供电时屏幕也保持常亮,可以在“电池”标签页中进行相同的设置。但请注意,长时间使用电池供电并保持屏幕常亮会显著缩短电池续航时间。
macos 系统偏好设置 节能在哪里
在 macOS 中,您可以通过以下步骤找到“节能”设置:
点击屏幕左上角的苹果菜单()。
选择“系统偏好设置”。
在系统偏好设置窗口中,找到并点击“电源” ("电池")(在某些版本中可能称作“节能”)。
在这个页面中,您可以调整各种节能设置,例如显示器的睡眠时间、计算机的睡眠时间等。
请注意,苹果在 macOS 的不同版本中可能会对界面和术语进行小的调整,但大体流程是相似的。如果您使用的是更高版本的 macOS,可能会看到“电池”选项,而非“节能”。
对于更高级的用户,可以通过终端命令来实现屏幕不熄屏。
打开终端:在Finder中,前往“应用程序” > “实用工具”,然后双击打开“终端”。
输入命令:在终端窗口中,输入命令caffeinate -s
并按下回车键。这条命令会阻止系统进入睡眠状态,包括屏幕熄灭。
结束命令:如果你想要结束这个命令的效果,可以在终端中再次输入相同的命令(caffeinate -s
),但实际上,由于caffeinate
命令的设计,再次输入相同的命令并不会结束之前的命令。要真正结束命令,你可能需要关闭终端窗口或使用kill
命令来结束caffeinate
进程(这通常不是必要的,因为关闭终端窗口或注销/重启计算机通常会结束所有运行的命令)。
我的正确做法是 :
系统偏好设置 => 用户与群组 => 登录项=> /usr/bin/caffeinate
下面的其实是了解原理,,我自己做法就是上面的三步.
还有一些第三方应用可以帮助你管理Mac的休眠和屏幕熄灭行为,如Amphetamine、One Switch和Caffeinated等。这些应用通常提供更丰富的功能和更直观的界面来控制Mac的电源管理设置。
长时间保持屏幕常亮会消耗更多的电量,特别是在使用电池供电时。因此,请根据你的实际需求来设置屏幕熄灭时间。
如果你是在使用外接显示器,并且希望外接显示器也保持常亮,那么你可能需要在显示器的设置菜单中进行相应的调整,因为Mac的系统设置主要控制内置显示器的行为。
在进行任何电源管理设置更改之前,请确保你了解这些更改可能对你的电脑性能和电池续航时间产生的影响。
参考10条信息源
caffeinate -s 在重启后会失效吗
caffeinate -s
命令在重启后会失效。这是因为 caffeinate
是一个在终端中运行的命令,用于防止Mac进入睡眠状态,包括屏幕熄灭。然而,这个命令的作用仅限于当前终端会话或直到它被明确终止(例如,通过关闭终端窗口或按下Ctrl+C)。当Mac重启时,所有正在运行的进程都会被终止,包括通过终端启动的 caffeinate
命令。
因此,如果你希望在Mac重启后仍然保持屏幕不熄屏,你需要在每次重启后重新运行 caffeinate -s
命令,或者考虑使用其他方法来永久更改这一设置。然而,macOS的系统偏好设置中没有直接提供“永久保持屏幕常亮”的选项。通常,用户需要在系统偏好设置的“节能”部分中手动调整屏幕睡眠时间,但这仍然需要用户根据需要进行手动更改。
另外,需要注意的是,长时间保持屏幕常亮会消耗更多的电量,特别是在使用电池供电时。因此,建议用户根据自己的实际需求来设置屏幕熄灭时间,以平衡电池续航时间和屏幕常亮的需求。
综上所述,caffeinate -s
命令在Mac重启后会失效,用户需要在每次重启后重新运行该命令或考虑其他解决方案。
macos 如何使 caffeinate -s 重启后不失效
caffeinate -s
命令用于防止 Mac OS 进入睡眠模式或屏幕保护程序启动。然而,每次系统重启之后,这个命令需要重新运行才能生效。
如果你希望在每次启动系统后自动运行 caffeinate -s
,可以将它添加到系统的启动项中。下面是一些方法来实现这一目的:
launchd
你可以创建一个 plist
文件来配置 caffeinate -s
在开机时自动运行。
创建 plist 文件:
Sh深色版本1nano ~/Library/LaunchAgents/com.caffeinate.plist
编辑文件,粘贴以下内容并保存:
Xml深色版本1<?xml version="1.0" encoding="UTF-8"?> 2<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3<plist version="1.0"> 4<dict> 5 <key>Label</key> 6 <string>com.caffeinate</string> 7 <key>ProgramArguments</key> 8 <array> 9 <string>/usr/local/bin/caffeinate</string> 10 <string>-s</string> 11 </array> 12 <key>RunAtLoad</key> 13 <true/> 14</dict> 15</plist>
使 plist 文件生效:
Sh深色版本1launchctl load ~/Library/LaunchAgents/com.caffeinate.plist
验证是否加载成功:
Sh深色版本1launchctl list | grep com.caffeinate
如果要卸载这个启动项,可以使用:
Sh深色版本1launchctl unload ~/Library/LaunchAgents/com.caffeinate.plist
你还可以通过系统偏好设置的“用户与群组”面板将 caffeinate -s
添加为登录项。
打开 系统偏好设置 > 用户与群组。
切换到 登录项 标签页。
点击 + 按钮添加新的登录项。
浏览到 /usr/local/bin/caffeinate (可能是 /usr/bin/caffeinate )
并选择它。
点击 添加。
这将会在每次用户登录时运行 caffeinate -s
命令。
请注意,上述方法需要确保 caffeinate
已经安装,并且位于 /usr/local/bin
目录下。如果使用 Homebrew 安装的 caffeinate
,通常会放在这个路径下。如果没有安装,可以通过 Homebrew 安装它:
Sh深色版本1brew install caffeine
以上步骤应该能帮助你在系统重启后保持 caffeinate -s
命令的效果。
使用登录项 里面 /usr/local/bin/caffeinate 命令 -s 参数怎么传过来
当你通过登录项的方式添加 caffeinate -s
命令时,由于登录项只支持执行单个程序,所以不能直接传递参数 -s
。但是,你可以通过创建一个 shell 脚本来解决这个问题。脚本会包含完整的命令,然后将脚本添加为登录项。
下面是具体步骤:
创建脚本文件:
Sh深色版本1 nano ~/bin/keepawake.sh
编辑文件,粘贴以下内容并保存:
Bash深色版本1 #!/bin/bash 2 /usr/local/bin/caffeinate -s
上面的 /usr/local/bin/caffeinate -s 可能应该改为 /usr/bin/caffeinate -s
给脚本文件添加执行权限:
Sh深色版本1 chmod +x ~/bin/keepawake.sh
打开系统偏好设置 > 用户与群组。
切换到 登录项 标签页。
点击 + 按钮添加新的登录项。
浏览到 ~/bin/keepawake.sh
并选择它。
点击 添加。
现在,每次用户登录时都会运行 keepawake.sh
脚本,从而执行 caffeinate -s
命令。
请注意,脚本文件需要放置在一个可执行的位置,如 ~/bin
或 /usr/local/bin
。如果 ~/bin
目录不存在,你需要先创建它:
Sh深色版本1 mkdir -p ~/bin
确保 caffeinate
已经安装,并且位于 /usr/local/bin
目录下。如果使用 Homebrew 安装的 caffeinate
,通常会放在这个路径下。如果没有安装,可以通过 Homebrew 安装它:
Sh深色版本1 brew install caffeine
这样设置后,你的 Mac 在每次启动时都会自动运行 caffeinate -s
,防止系统进入睡眠状态。
macos 使屏幕常亮
在 macOS 上使屏幕常亮,你可以通过以下几种方法实现:
点击屏幕左上角的苹果图标 (),选择“系统偏好设置”。
选择“节能”。
在“电源适配器”和“电池”标签中,将“关闭显示器前的时间”滑块拖动到“从不”。
你可以用终端命令设置屏幕不休眠:
打开“终端”应用(可以通过Spotlight查找)。
输入以下命令:
bash
caffeinate
这个命令会阻止你的Mac进入睡眠状态,直到你关闭终端窗口或停止命令(使用 Control + C
来停止)。
有些应用程序允许你控制屏幕的亮度和睡眠设置,例如:
Amphetamine:一个免费应用,可以保持你的屏幕常亮。
Caffeine:另一个类似的工具,可以通过菜单栏图标快速控制屏幕睡眠。
如果你的Mac有显示器,可能还需要检查显示器的设置,以确保其不会自动关闭。
选择适合自己需求的方法,可以使屏幕保持常亮。如果需要进一步的帮助,请告诉我!
macos 使屏幕常亮
要在MacOS中设置屏幕保持常亮,您需要调整显示器的睡眠设置。请按照以下步骤操作:
点击屏幕右上角的苹果菜单()。
选择“系统设置...”。
在系统设置窗口中,点击“节能”或“电源节省”图标。
在这里您可以找到“显示器睡眠”的选项,将其设置为“从不”或者设置一个较长的时间间隔来延迟屏幕关闭。
如果您使用的是较新的macOS版本,步骤可能会略有不同:
打开“系统设置”。
点击“显示”或“显示器”(取决于您的macOS版本)。
在“睡眠”部分,选择“永不”。
这样设置后,您的Mac屏幕就不会自动进入睡眠状态了。请注意,这可能会影响电池寿命,所以在不需要的时候还是建议适当设置显示器的睡眠时间。
macos 使屏幕常亮
在macOS系统中,使屏幕常亮可以通过系统偏好设置来实现,具体步骤如下:
打开系统偏好设置:
点击屏幕左上角的苹果图标,选择“系统偏好设置”。
选择节能设置:
在系统偏好设置窗口中,点击“节能”选项。
调整显示器设置:
在节能设置窗口中,你会看到“显示器”部分。这里有两个选项卡:“电池”和“电源适配器”。
如果你希望在使用电池时屏幕也保持常亮,就点击“电池”选项卡,然后将“此时间段后关闭显示器”的滑块拖动到最右侧,选择“永不”。
如果你希望在使用电源适配器时屏幕保持常亮,就点击“电源适配器”选项卡,同样将“此时间段后关闭显示器”的滑块拖动到最右侧,选择“永不”。
保存设置:
调整完毕后,关闭节能设置窗口即可。
如果你熟悉终端命令,也可以通过输入命令来阻止系统进入空闲状态,从而保持屏幕常亮。但请注意,这种方法较为高级,且可能会对系统性能产生一定影响。
在终端中输入以下命令:
bash复制代码sudo pmset noidle
这条命令会阻止系统进入空闲状态,但请注意,它并不会直接控制显示器的关闭行为。它更多地是影响了系统的整体空闲策略,可能会间接影响屏幕常亮的效果。然而,在大多数情况下,通过系统偏好设置中的节能选项来调整显示器关闭时间已经足够满足需求。
长时间让屏幕保持常亮可能会消耗更多的电池电量,特别是在使用电池供电时。因此,在不需要时,建议将显示器设置为自动关闭以节省电量。
如果你在节能设置中找不到“永不”选项,可能是因为你的macOS版本较旧或设置方式有所不同。请尝试更新你的macOS系统到最新版本,或查看苹果官方文档以获取更详细的设置指导。
第三方软件如Keep Awake、Caffeine等也可以帮助你在macOS中保持屏幕常亮,但请注意这些软件可能会占用一定的系统资源。
sudo pmset noidle 会永久生效吗
sudo pmset noidle
命令在 macOS 中用于阻止系统进入空闲(idle)状态,这通常会影响系统的睡眠和显示器关闭行为。然而,这个命令的效果并不是永久生效的,而是会持续到终端会话结束或者直到你显式地取消它。
具体来说,当你执行 sudo pmset noidle
命令后,系统会被设置为不会因为空闲而进入睡眠状态,也不会自动关闭显示器。这个设置会一直有效,直到你执行以下操作之一来取消它:
关闭终端:如果你是在终端中执行了这个命令,关闭终端窗口将会结束这个命令的执行,系统可能会恢复到之前的空闲和睡眠设置。
使用 Ctrl+C
:在终端中,如果你仍然处于执行该命令的会话中,可以使用 Ctrl+C
来中断命令的执行。这样也可以取消 pmset noidle
的效果。
重新执行相反的命令:虽然 macOS 并没有直接提供一个“取消 noidle”的命令,但你可以通过重启系统或调整节能设置来恢复默认的空闲和睡眠行为。
需要注意的是,sudo pmset noidle
命令通常用于需要保持系统长时间运行而不进入睡眠状态的场景,比如在进行长时间的文件下载、服务器维护等任务时。然而,长时间保持屏幕和系统不进入睡眠状态会增加电脑的功耗和热量产生,因此建议在不需要时及时取消这个设置。
另外,macOS 的节能设置提供了更加灵活和详细的选项来管理系统的睡眠和显示器关闭行为,包括可以根据电池电量和使用情况自动调整的设置。因此,在大多数情况下,通过系统偏好设置中的节能选项来调整这些设置会更加方便和高效。
caffeinate 命令参数详解
caffeinate
是 macOS 中的一个命令行工具,用于防止系统进入睡眠状态或屏幕关闭。该命令提供了多个参数,允许用户自定义其行为。以下是对 caffeinate
命令参数的详细解析:
无参数:当 caffeinate
命令没有任何参数时,它会创建一个断言来防止系统进入空闲睡眠,直到用户手动终止(通常是通过按下 Ctrl+C)。
-d:防止显示器进入睡眠状态。这允许系统继续运行,但屏幕会保持开启状态。
-i:防止系统因空闲而进入睡眠状态。这适用于需要长时间运行且不需要用户交互的任务。
-m:防止磁盘进入空闲睡眠。这主要用于防止硬盘在闲置时停止旋转,但通常与防止系统睡眠的需求不太相关。
-s:在旧版本的文档或描述中可能会提到 -s
参数用于防止系统睡眠,但在现代 macOS 版本中,-s
并不直接作为 caffeinate
的一个独立参数出现。实际上,-s
可能是在某些上下文中被误解或误用。通常,防止系统睡眠会使用无参数运行 caffeinate
或结合其他参数(如 -i
)来实现。
-t 或 --duration**:指定
caffeinate 命令应该持续的时间(以秒为单位)。例如,
caffeinate -t 3600` 会让系统保持清醒状态一个小时。
-u:如果显示器已经关闭,这个参数会将其打开,并防止其进入空闲睡眠。通常与 -t
参数结合使用来指定超时时间。
-w 或 --pid**:后面跟随一个进程ID(PID),用于将
caffeinate` 的断言附加到指定的进程上。只要该进程正在运行,系统就不会进入睡眠状态。但是,这个参数并不直接启动应用程序,而是与已经运行的进程相关联。
防止系统进入空闲睡眠(无参数):
bash复制代码caffeinate
直到用户按下 Ctrl+C,系统才会恢复正常的睡眠行为。
防止系统进入空闲睡眠并持续一小时:
bash复制代码caffeinate -t 3600
防止显示器进入睡眠状态:
bash复制代码caffeinate -d
打开已关闭的显示器并防止其进入空闲睡眠,持续5秒:
bash复制代码caffeinate -u -t 5
caffeinate
命令的可用性和参数可能会随着 macOS 的更新而发生变化。因此,建议查阅最新的官方文档或 man caffeinate
命令来获取最准确的信息。
在使用 caffeinate
时,请注意其可能对系统电源管理的影响,特别是在使用电池供电的设备上。长时间运行 caffeinate
可能会增加电力消耗。
综上所述,caffeinate
命令是 macOS 中一个非常有用的工具,通过其提供的参数,用户可以灵活地控制系统的睡眠行为,以满足不同的使用需求。
caffeinate 命令参数详解
caffeinate
是 macOS 下一个非常实用的小工具,它可以阻止系统进入睡眠模式、防止屏幕变暗或硬盘停止工作。这个工具尤其在你需要长时间进行数据传输或者下载,以及运行一些需要持续无间断执行的任务时非常有用。
caffeinate
可以通过 Homebrew 包管理器来安装:
sh深色版本1 brew install caffeine
请注意,命令名在使用时是 caffeinate
而不是 caffeine
。
基本的使用方式很简单,只需打开 Terminal (终端) 并输入 caffeinate
命令即可保持系统清醒状态。
-d
, --disallow-disk-sleep
:防止硬盘进入睡眠模式。
-i
, --disallow-idle-sleep
:防止系统因闲置而进入睡眠模式。
-b
, --disallow-blank-screen
:防止屏幕变暗。
-t
, --timeout SECONDS
:设置命令有效的时间长度(以秒为单位)。例如 -t 3600
表示命令只在接下来的一小时内有效。
-m
, --monitor
:监控睡眠状态,并在改变时输出信息。
-h
, --help
:显示帮助信息。
-v
, --version
:显示版本信息。
如果你想让系统在一小时内既不休眠也不让硬盘停止工作,可以这样操作:
sh深色版本1 caffeinate -d -i -t 3600
如果只是想在下载文件的时候不让屏幕变暗,可以这样做:
sh深色版本1 caffeinate -b -t 1800 & download_large_file &
这里的 &
是将 download_large_file
命令放到后台执行。
使用 caffeinate
的时候要小心,因为它可能会让你忘记手动关闭它,从而导致系统一直保持清醒状态。因此,在不再需要保持系统清醒时,可以通过按下 Ctrl + C
来终止 caffeinate
进程,或者使用 kill
命令结束进程。
如果 caffeinate
正在运行并且你强制重启或关机,可能会导致数据丢失或硬件损坏,所以在计划关机之前应该先停止 caffeinate
。
如果你在笔记本电脑上使用 caffeinate
,请确保电池电量充足或者连接到电源,因为这将阻止系统进入节能模式。
希望这些信息对你有帮助!如果有任何其他问题,请随时询问。
-s 就是system 的意思
-i 就是idel ;;; -i terminal_command ,,,,-i 后面可以跟命令,,,也可以不跟命令
-d Disk(磁盘防睡眠) 阻止硬盘进入睡眠状态
-u User Activity(模拟用户活动) 假装用户正在操作,阻止睡眠和屏幕关闭
-w PID Watch(监视进程)当特定进程运行时才防睡眠(需指定进程ID)
caffeinate 与 caffeinate -s 和 caffeinate -i terminal_command 区别
在 macOS 中,caffeinate
是一个实用工具,用于防止系统进入睡眠状态(包括显示屏关闭、硬盘休眠等)。不同选项的作用如下:
caffeinate
(无参数)作用:
阻止系统进入睡眠状态,但不阻止显示屏关闭(锁定屏幕后,显示器仍会熄灭)。
适用场景:
需要保持后台任务(如下载、编译)运行时,但允许屏幕关闭。
示例:
bashcaffeinate your_command
运行 your_command
期间系统不会睡眠,但锁屏后显示器可能关闭。
caffeinate -s
作用:
阻止系统睡眠(System Sleep),但允许显示屏关闭(与无参数行为类似)。
锁屏后,显示器可能会熄灭,但 CPU 和网络仍活跃。
适用场景:
节能模式下保持后台任务运行(如服务器进程)。
示例:
bashcaffeinate -s your_command
与默认 caffeinate
的区别不大,但更明确指定了阻止系统睡眠。
caffeinate -i
作用:
阻止 系统睡眠(System Sleep)和显示屏关闭(Idle Sleep),即锁屏后显示器保持亮起。
通常用于需要持续交互的场景(如演示、长时间操作)。
适用场景:
需要防止锁屏或显示器关闭的情况(如播放视频、持续监控)。
示例:
bashcaffeinate -i your_command
执行 your_command
时,系统不会睡眠,屏幕也不会关闭。
参数 | 作用 | 补充说明 |
---|---|---|
-d | 阻止 磁盘睡眠 | 确保硬盘不休眠(如文件备份时)。 |
-u | 模拟用户活动(防止睡眠和显示屏关闭) | 类似 -i ,但通过模拟输入实现。 |
-w <PID> | 关联到进程 ID,该进程运行时阻止睡眠 | 进程退出后恢复正常睡眠。 |
bashcaffeinate -s nohup ./long_script.sh &
系统不会睡眠,但锁屏后显示器可关闭。
bashcaffeinate -i python3 slideshow.py
屏幕和系统均不睡眠,直到命令结束。
命令 | 系统睡眠 | 显示屏关闭 | 典型用途 |
---|---|---|---|
caffeinate | ❌ 阻止 | ✅ 允许 | 后台任务运行(如编译、下载)。 |
caffeinate -s | ❌ 阻止 | ✅ 允许 | 明确阻止系统睡眠。 |
caffeinate -i | ❌ 阻止 | ❌ 阻止 | 需要屏幕常亮(如演示、监控)。 |
caffeinate -d -i | ❌ 阻止 | ❌ 阻止 | 同时防止磁盘睡眠(全功能模式)。 |
注意事项:
长期使用 -i
可能增加功耗。
若需后台持续运行,建议结合 nohup
或 tmux
。
-s -i 翻译成中文
在 macOS 的 caffeinate
命令中,-s
和 -i
参数的中文含义及区别如下:
-s
(System Sleep,系统睡眠)翻译:阻止系统睡眠(但允许显示屏关闭)。
作用:
仅阻止 macOS 进入深度睡眠(CPU、网络等活动不会暂停)。
不阻止显示屏关闭(锁屏或空闲时屏幕仍会熄灭)。
适用场景:
需要后台任务持续运行(如服务器、下载、编译),但无需屏幕常亮。
-i
(Idle Sleep,闲置睡眠)翻译:阻止系统睡眠和显示屏关闭。
作用:
阻止系统睡眠 同时阻止屏幕休眠/关闭(锁屏后显示器保持亮起)。
模拟用户活动,让系统认为“正在使用中”。
适用场景:
需要屏幕常亮的任务(如演示、监控、长时间播放视频)。
参数 | 英文原意 | 中文含义 | 是否阻止系统睡眠 | 是否阻止屏幕关闭 |
---|---|---|---|---|
-s | System Sleep | 阻止系统睡眠 | ✅ 是 | ❌ 否 |
-i | Idle Sleep | 阻止系统和屏幕睡眠 | ✅ 是 | ✅ 是 |
bash# 允许锁屏黑屏,但保持系统运行(比如下载) caffeinate -s wget https://example.com/large_file.zip # 防止锁屏和黑屏(比如演示文稿) caffeinate -i python3 slideshow.py
如需同时阻止磁盘睡眠,可结合 -d
参数:
bashcaffeinate -di # 阻止系统、屏幕、磁盘睡眠
caffeinate -d - i 后面 需要 跟参数吗
在 macOS 的 caffeinate
命令中,-d -i
(或 -di
)是 可选参数,是否需要在后面跟其他参数,取决于你的用途:
bashcaffeinate -di # 直接阻止系统、磁盘、屏幕睡眠,直到手动终止(Ctrl+C)
用途:
临时阻止 Mac 进入睡眠(比如长时间离开但需要保持系统活跃)。
无关联程序,需手动停止(按 Ctrl+C
退出)。
bashcaffeinate -di your_command # 仅在 your_command 运行时阻止睡眠
用途:
仅在该命令运行时阻止睡眠,命令结束后自动恢复正常睡眠。
例如:
bashcaffeinate -di python3 long_running_script.py # 脚本运行时防睡眠
形式 | 行为 |
---|---|
caffeinate -di | 无限期防睡眠,需手动终止。 |
caffeinate -di command | 仅在 command 运行期间防睡眠,命令退出后自动恢复睡眠。 |
参数顺序:-d -i
可以合并为 -di
(效果相同),但 命令必须放在最后。
bashcaffeinate -di your_command # ✅ 正确 caffeinate your_command -di # ❌ 错误(参数必须在命令前)
后台运行:
如果需要后台运行且防睡眠,建议结合 &
或 nohup
:
bashcaffeinate -di nohup your_command & # 后台运行并防睡眠
不需要跟参数:直接运行 caffeinate -di
会持续阻止睡眠,直到手动终止。
需要跟参数:caffeinate -di your_command
仅在命令运行时生效。
典型用途:根据是否需要关联程序选择合适的形式。
nohup 是什么 意思
nohup
是什么?nohup
(No Hang Up 的缩写)是 Unix/Linux/macOS 中的一条命令,用于 让程序在用户注销(logout)或终端关闭后仍能继续运行,而不会被系统终止。
nohup
的主要作用✅ 防止程序因终端关闭而退出(如 SSH 断开、终端意外关闭)
✅ 忽略 SIGHUP
(Hang Up)信号,使程序不受用户退出的影响
✅ 适合长时间运行的后台任务(如服务器、爬虫、训练模型)
bashnohup 你的命令 &
&
:让命令在后台运行
默认输出:nohup
会把输出日志保存到当前目录的 nohup.out
文件中
示例:
bashnohup python3 train_model.py & # 运行训练脚本,即使终端关闭也不会停止
bashnohup 你的命令 > custom.log 2>&1 &
> custom.log
:把 标准输出(stdout) 写入 custom.log
2>&1
:把 错误输出(stderr) 也重定向到 custom.log
caffeinate
防止睡眠bashnohup caffeinate -i 你的命令 &
这样既能防止程序被关闭,也能防止 Mac 锁屏时任务暂停。
nohup
运行的程序?bashps aux | grep 你的命令
或
bashjobs -l # 查看后台任务
bashkill -9 进程ID
nohup
vs tmux
方式 | 优点 | 缺点 | 适用场景 |
---|---|---|---|
nohup | 简单易用 | 不能交互式操作 | 非交互式长时间任务 |
tmux | 可切换回话,交互式操作 | 需要额外学习 | 需要交互的后台任务 |
推荐:
如果只是 跑脚本、训练模型 → nohup
足够
如果需要 交互操作(如调试、运行服务器) → 用 tmux
nohup
= 防退出 + 后台运行,让程序即使终端关闭也能继续执行。
典型用途:训练AI、下载大文件、Web服务器。
搭配 caffeinate
可以同时防止锁屏暂停任务。
如果任务需要交互,建议用 tmux
替代。
No Hang Up → "不挂断" 或 "忽略挂断信号"
在 Unix/Linux 系统中:
Hang Up(挂断) 指终端(Terminal/Session)关闭时,系统会向相关进程发送 SIGHUP
信号(Signal Hang Up),默认行为是终止这些进程。
nohup
的作用是 让程序忽略 SIGHUP
信号,从而在终端关闭后继续运行。
英文术语 | 中文技术翻译 | 通俗解释 |
---|---|---|
Hang Up | 挂断 | 终端断开连接或关闭 |
SIGHUP | 挂断信号 | 系统通知进程“终端已关闭”的信号 |
nohup | 不挂断/忽略挂断 | 让程序无视终端关闭,继续运行 |
bashnohup python3 server.py & # 不挂断运行 Python 服务器
中文理解:
“用 不挂断
模式运行 server.py
,即使终端退出也不终止。”
工具 | 英文全称 | 中文意译 | 核心功能 |
---|---|---|---|
nohup | No Hang Up | 不挂断 | 忽略终端关闭,进程持续运行 |
tmux | Terminal Multiplexer | 终端多路复用 | 会话持久化,支持断开后重连 |
技术习惯:中文计算机文献普遍采用 "不挂断" 或 "忽略挂断"。
避免歧义:直接翻译为“不悬挂”会让用户难以理解其技术含义。
nohup
= No Hang Up = 不挂断(技术术语)
本质:让程序无视终端关闭,持久化运行。
典型用途:后台跑脚本、服务器、长时间任务。
-d -u -w 的简写
在 macOS 的 caffeinate
命令中,-d
、-u
、-w
是 独立参数(不提供简写形式),但可以 组合使用(例如 -di -u
)。以下是它们的详细说明和常见组合:
参数 | 全称/含义 | 功能 |
---|---|---|
-d | Disk(磁盘防睡眠) | 阻止硬盘进入睡眠状态 |
-u | User Activity(模拟用户活动) | 假装用户正在操作,阻止睡眠和屏幕关闭 |
-w | PID Watch(监视进程) | 当特定进程运行时才防睡眠(需指定进程ID) |
可以合并同类参数(如 -di
= -d -i
)。
但 -w
必须带 PID(进程ID),不能直接合并。
✅ 正确组合示例:
bashcaffeinate -di -u # 同时防磁盘睡眠、屏幕关闭,并模拟用户活动 caffeinate -di -w 1234 # 监视 PID=1234 的进程,在其运行时防睡眠
❌ 错误示例:
bashcaffeinate -duw # 无效!`-w` 必须单独指定 PID
组合 | 效果 | 适用场景 |
---|---|---|
caffeinate -di | 防系统睡眠 + 防屏幕关闭 + 防磁盘睡眠 | 长时间运行任务并保持屏幕常亮 |
caffeinate -is | 防系统睡眠 + 防屏幕关闭(-s 默认包含) | 与 -di 类似,但写法不同 |
caffeinate -du | 防磁盘睡眠 + 模拟用户活动(但屏幕可能关闭) | 后台任务需硬盘活跃 |
caffeinate -w 456 -i | 仅在 PID=456 运行时防睡眠 + 屏幕常亮 | 进程关联的防睡眠 |
-u
的优先级:若同时用 -i
和 -u
,-i
(强制屏幕常亮)会覆盖 -u
的默认行为。
连续短参数:-d -i
可缩写成 -di
,但 -d -u -w
不能写成 -duw
(因 -w
需额外参数)。
没有 -duw
这种简写,但 -d -u
可以合并为 -du
。
-w
必须单独使用(需指定进程ID)。
推荐组合:
bash# 最大化防睡眠(系统+屏幕+磁盘) caffeinate -di # 关联进程防睡眠 caffeinate -w <PID> -i
macos caffeinate 与 caffeinate -s 和 caffeinate -i terminal_command 区别
在 macOS 中,caffeinate
命令用于阻止系统进入睡眠状态(包括显示器关闭、磁盘睡眠、系统休眠)。它的不同选项决定了阻止睡眠的触发条件和阻止类型。下面是 caffeinate
、caffeinate -s
和 caffeinate -i terminal_command
之间的主要区别:
caffeinate
(无参数)
显示器关闭: 阻止显示器进入睡眠(变黑)。
系统睡眠: 阻止系统进入睡眠状态。
作用: 创建一个 display
类型的断言。
阻止内容:
触发条件: 只要 caffeinate
进程本身在运行。当你直接运行 caffeinate
而不带任何命令时,它会一直运行直到你手动终止它(通常是按 Control + C
)。
不阻止: 磁盘睡眠(如果系统设置允许磁盘单独睡眠)。
典型用途: 需要屏幕长时间保持亮着且系统不睡眠,例如做演示或观看长视频时保持屏幕常亮。
caffeinate -s
显示器关闭: 显示器仍然会根据你的节能设置正常关闭。
磁盘睡眠: 磁盘仍然可能进入睡眠(但系统不睡眠通常意味着磁盘活动也可能保持唤醒)。
系统睡眠: 阻止系统进入睡眠状态。
作用: 创建一个 system
类型的断言。
阻止内容:
触发条件: 只要 caffeinate -s
进程本身在运行。
不阻止:
典型用途: 需要系统长时间保持清醒运行后台任务(如下载大文件、渲染视频、运行服务器进程),但不关心屏幕是否关闭。比 caffeinate
(无参数)更省电,因为允许屏幕关闭。
caffeinate -i terminal_command
只要 terminal_command
进程在运行,系统就不会睡眠(包括显示器和系统)。
一旦 terminal_command
执行完毕并退出,caffeinate
也会随之退出,系统将立即恢复正常的睡眠行为(根据节能设置)。
显示器关闭: 阻止显示器睡眠。
系统睡眠: 阻止系统睡眠。
空闲睡眠: 阻止系统因用户空闲(无操作)而进入睡眠。
作用: 创建一个 idle
类型的断言,并将这个断言绑定到指定的 terminal_command
进程的生命周期。
阻止内容:
触发条件: 仅在 terminal_command
正在运行时有效。 当 caffeinate
启动 terminal_command
后:
典型用途: 运行一个特定的、你知道耗时的终端命令(如编译大型项目 caffeinate -i make
、运行长时间脚本 caffeinate -i ./long_script.sh
、执行大文件操作 caffeinate -i rsync ...
),并希望在该命令运行期间阻止系统睡眠(包括显示器)。命令完成后,睡眠功能自动恢复。这是最精确、最自动化的用法。
总结对比表:
命令形式 | 断言类型 | 阻止显示器睡眠 | 阻止系统睡眠 | 触发条件 | 命令结束后行为 | 主要用途 |
---|---|---|---|---|---|---|
caffeinate | display | ✅ | ✅ | caffeinate 进程运行 | 需手动 Ctrl+C 终止 | 手动保持屏幕和系统唤醒(如演示) |
caffeinate -s | system | ❌ | ✅ | caffeinate -s 进程运行 | 需手动 Ctrl+C 终止 | 保持系统唤醒运行后台任务,允许屏幕关闭(省电) |
caffeinate -i terminal_command | idle | ✅ | ✅ | 指定的 terminal_command 进程运行中 | 自动退出,恢复睡眠设置 | 在运行特定耗时命令期间自动阻止睡眠 |
关键区别要点:
范围与绑定: caffeinate
和 caffeinate -s
的效果取决于它们自身进程的运行。caffeinate -i command
的效果则精确绑定到 command
的运行时间。
显示器行为: caffeinate
和 caffeinate -i
会阻止显示器关闭。caffeinate -s
允许显示器按设置关闭。
自动化程度: caffeinate -i command
是自动化的,命令结束即停止阻止睡眠。其他两个需要手动终止。
省电: caffeinate -s
是最省电的选项,因为它允许屏幕关闭。caffeinate
和 caffeinate -i
会强制屏幕常亮。
如何选择?
想在某个命令运行期间自动防止睡眠(包括屏幕)? ➔ 用 caffeinate -i your_command
。
想运行一个长时间的后台任务,需要系统不睡眠,但允许屏幕关闭? ➔ 用 caffeinate -s
(然后可能需要后台运行 &
或用 nohup
/disown
)。
想手动保持屏幕和系统唤醒一段时间? ➔ 用 caffeinate
(记得用完按 Ctrl+C
关掉)。
caffeinate
还有其他有用的选项(如 -t
设置超时时间、-u
模拟用户活动防止屏幕保护程序等),但 -i
和 -s
是最核心和最常用的。