macOS 系統設置息屏情況下,PHP等后臺腳本繼續執行

在 macOS 系統下,當屏幕息屏或合上蓋子時,后臺腳本程序是否會繼續運行,主要取決于以下幾個因素:

1. 系統睡眠狀態的影響

  • 默認情況:合蓋/息屏后,Mac 會進入「睡眠模式」(部分硬件休眠),此時:
    • CPU 任務:后臺腳本(如 Python、Shell 腳本)通常會被暫停。
    • 網絡請求:未完成的網絡連接可能中斷。
  • 例外情況:如果啟用了「防止睡眠」模式,腳本會繼續運行。

2. 如何保持腳本持續運行

? 方法 1:使用 caffeinate 命令(系統自帶)
# 運行腳本時阻止睡眠(直到腳本結束)
caffeinate -s ./your_script.sh# 或者永久阻止睡眠(需手動終止)
caffeinate -dims &
./your_script.sh

參數說明

  • -d:阻止顯示器睡眠
  • -i:阻止系統空閑睡眠
  • -m:阻止磁盤睡眠
  • -s:阻止系統睡眠(合蓋仍有效)
? 方法 2:修改能源管理設置
# 臨時禁用睡眠(需 sudo 密碼)
sudo systemsetup -setcomputersleep Never# 恢復默認設置
sudo systemsetup -setcomputersleep 30
? 方法 3:使用 tmuxnohup
# 使用 tmux(推薦)
tmux new -s mysession
./your_script.sh
# 按 Ctrl+B → D 脫離會話(腳本繼續運行)# 使用 nohup
nohup ./your_script.sh &

3. 驗證腳本是否在后臺運行

# 查看所有進程
ps aux | grep your_script# 查看系統睡眠狀態
pmset -g assertions

如果輸出中包含 PreventUserIdleSystemSleep,說明防睡眠已生效。

4. 常見問題解決

  • 問題:合蓋后 SSH 斷開導致腳本終止
    方案:通過 tmux/screen 運行腳本,或使用內網穿透工具(如 frp)。

  • 問題:依賴 GUI 的腳本失敗
    方案:改用無頭模式(如 headless 瀏覽器)或 CLI 工具。

5. 自動化建議

如果需要長期運行后臺任務,建議:

  1. launchd 配置守護進程:
    <!-- ~/Library/LaunchAgents/your.script.plist -->
    <dict><key>Label</key><string>your.script</string><key>ProgramArguments</key><array><string>/path/to/your_script.sh</string></array><key>RunAtLoad</key><true/><key>KeepAlive</key><true/>
    </dict>
    
  2. 加載配置:
    launchctl load ~/Library/LaunchAgents/your.script.plist
    

📌 總結表:Mac 息屏后腳本運行方案

方案是否需要命令合蓋后效果適用場景
caffeinate需要持續運行臨時任務
修改 systemsetup需要 sudo持續運行長期任務(需手動恢復)
tmux/nohup需要可能暫停遠程 SSH 任務
launchd 守護進程配置一次持續運行生產環境長期運行

systemsetup使用方法

在 macOS 中,systemsetup 是一個強大的命令行工具,用于配置系統級別的硬件和能源設置。以下是關于 systemsetup 的詳細使用方法和常見場景:


1. 基本命令語法

sudo systemsetup -set<選項> <參數>
sudo systemsetup -get<選項>

?? 需要管理員權限(sudo


2. 常用命令示例

🔹 睡眠與喚醒控制
功能命令備注
禁用睡眠sudo systemsetup -setcomputersleep Never合蓋/息屏不睡眠
設置睡眠時間sudo systemsetup -setcomputersleep 3030分鐘后睡眠
禁用顯示器睡眠sudo systemsetup -setdisplaysleep Never僅屏幕不關閉
獲取當前設置sudo systemsetup -getcomputersleep查看睡眠超時
🔹 網絡喚醒(Wake-on-LAN)
# 啟用網絡喚醒
sudo systemsetup -setwakeonnetworkaccess on# 檢查狀態
sudo systemsetup -getwakeonnetworkaccess
🔹 時間同步
# 使用NTP時間同步
sudo systemsetup -setnetworktimeserver time.apple.com
sudo systemsetup -setusingnetworktime on
🔹 啟動磁盤設置
# 指定啟動磁盤
sudo systemsetup -setstartupdisk /Volumes/macOS# 列出可用啟動磁盤
sudo systemsetup -liststartupdisks

3. 能源管理相關命令

查看所有能源設置:
pmset -g
單獨配置電池/電源適配器模式:
# 電池模式下不休眠
sudo pmset -b sleep 0# 電源適配器模式下不休眠
sudo pmset -c sleep 0

4. 實用技巧

🔸 防止合蓋睡眠(同時允許其他睡眠)
# 合蓋時不睡眠(需重啟生效)
sudo pmset -a disablesleep 1# 恢復默認
sudo pmset -a disablesleep 0
🔸 SSH遠程喚醒
# 允許SSH喚醒(需先啟用網絡喚醒)
sudo systemsetup -setremoteappleevents on
🔸 日志查看
# 查看睡眠/喚醒日志
log show --predicate 'eventMessage contains "Sleep"' --last 24h

5. 恢復默認設置

# 恢復所有睡眠設置默認值
sudo pmset -a restoredefaults

?? 注意事項

  1. 部分設置需要重啟生效
  2. 長期禁用睡眠可能導致過熱
  3. 使用 -a 參數表示所有電源模式(-b=電池,-c=電源適配器)

6. 圖形化替代方案

如果不想用命令行,可以通過以下路徑修改:

  1. 系統設置 > 電池 > 調整睡眠時間
  2. 系統設置 > 鎖定屏幕 > 關閉「睡眠時鎖定屏幕」

通過 systemsetuppmset 的組合使用,你可以精準控制 Mac 的睡眠行為,滿足后臺腳本持續運行的需求。
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/76882.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/76882.shtml
英文地址,請注明出處:http://en.pswp.cn/web/76882.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SpringBoot集成ActiveMQ異常處理機制:若未捕獲異常,消息會被重新投遞

一、問題描述 SpringBoot項目集成AvtiveMQ&#xff0c;作為消息消費者。如果在消費消息的方法中&#xff0c;拋出異常&#xff0c;會產生什么效果&#xff1f; 二、ActiveMQ異常處理機制&#xff08;AI問答僅供參考&#xff09; 在Spring Boot項目集成ActiveMQ作為消息消費者…

【Java學習筆記】random的使用

random使用方法 使用說明&#xff1a;返回的是(0<n<1)這個范圍中的任意帶正號的double值 代碼實例 public class helloworld{public static void main(String[] args){System.out.println(Math.random());} }生成0-100中的任意數代碼示例 public class Main {public …

(三)垂直分庫架構、分布式數據庫

文章目錄 垂直分庫架構/分布式數據庫什么是垂直分庫架構架構模型優缺點優點缺點 技術案例分布式數據庫架構模型優缺點優點缺點 技術案例 垂直分庫架構/分布式數據庫 什么是垂直分庫架構 根據業務的模塊劃分&#xff0c; 將不同業務的數據放到不同的數據庫中。 比如一個電子商城…

數據結構線性表的順序存儲結構

線性表是由零個或多個數據元素組成的有序序列。 特點&#xff1a; 數據元素間是有順序的&#xff1b; 數據元素的個數是有限的&#xff1b; 一般來說&#xff0c;數據元素的類型是相同的&#xff08;強類型語言&#xff09;。c/c是強類型語言&#xff0c;必須指定數據類型。…

扣子空間試用:生成五一騎行規劃+notion文章編寫

今天試用了一下扣子空間&#xff0c;正好五一快到了&#xff0c;讓它幫忙做了五一騎行規劃&#xff0c;效果不賴&#xff01; 生成五一騎行規劃 點擊前往網站查看效果 prompt 如下&#xff1a; 幫我做一個五一上海騎行規劃 要求&#xff1a; - 風景優美 - 人少 - 100km總路程…

最新得物小程序sign簽名加密,請求參數解密,響應數據解密逆向分析

點擊精選&#xff0c;出現https://app.dewu.com/api/v1/h5/index/fire/index 這個請求 直接搜索sign的話不容易定位 直接搜newAdvForH5就一個&#xff0c;進去再搜sign&#xff0c;打上斷點 可以看到t.params就是沒有sign的請求參數&#xff0c; 經過Object(a.default)該函數…

在C#串口通信中,一發一收的場景,如何處理不同功能碼的幀數據比較合理,代碼結構好

在 C# 串口通信的一發一收場景里&#xff0c;處理不同功能碼的幀數據可采用以下合理的代碼結構&#xff0c;它能讓代碼更具可讀性、可維護性和可擴展性。 實現思路 定義幀結構&#xff1a;創建一個類來表示通信幀&#xff0c;其中包含功能碼、數據等信息。功能碼處理邏輯&…

【C++】vector擴容縮容

vector擴容縮容 1 擴容 一般來說&#xff0c;主要是重新分配內存 2 縮容 resize 縮小后&#xff0c;vector 的容量&#xff08;capacity()&#xff09;可能保持不變&#xff0c;需要顯式調用 shrink_to_fit() 來釋放內存。 驗證代碼&#xff1a; #include <vector>…

java中,線程的執行狀態有哪些

在 Java 里&#xff0c;線程有 6 種執行狀態&#xff0c;這些狀態都在 java.lang.Thread.State 枚舉類中被定義。下面為你詳細介紹這些狀態&#xff1a; 1. NEW&#xff08;新建狀態&#xff09; 當你創建了一個 Thread 對象&#xff0c;卻還未調用其 start() 方法時&#xf…

MATLAB 控制系統設計與仿真 - 41

魯棒控制的其他函數 - 回路成型函數 loopsyn 靈敏度問題由魯棒控制工具箱中的loopsyn就可以直接求解,該函數采用H無窮回路成型算法設計控制器,函數的調用格式為: [K,CL,gamma,info] = loopsyn(G,Gd) % G為受控對象模型% Gd為期望的回路傳遞函數% K為回路成型控制器模型% C…

查詢Hologres或postgresql中的數據

因Hologres使用postgresql的語法.所以兩者查詢一樣. 方案1: import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.ArrayList; import java.util.List;/*** 一個使用簡單連接池管理PostgreSQL連接的工具類。*/ publi…

OpenBayes 一周速覽|EasyControl 高效控制 DiT 架構,助力吉卜力風圖像一鍵生成;TripoSG 單圖秒變高保真 3D 模型

公共資源速遞 10 個教程&#xff1a; * 一鍵部署 R1-OneVision * UNO&#xff1a;通用定制化圖像生成 * TripoSG&#xff1a;單圖秒變高保真 3D * 使用 VASP 進行機器學習力場訓練 * InfiniteYou 高保真圖像生成 Demo * VenusFactory 蛋白質工程設計平臺 * Qwen2.5-0mni…

中興云電腦W102D_晶晨S905X2_2+16G_mt7661無線_安卓9.0_線刷固件包

中興云電腦W102D_晶晨S905X2_216G_mt7661無線_安卓9.0_線刷固件包 準備工作&#xff1a; 工具和設備在開始刷機之前&#xff0c;確保你已經準備好以下物品&#xff1a;雙公頭USB線&#xff1a;選擇一根30-50厘米長的USB線&#xff0c;長度適中&#xff0c;方便操作&#xff0c;…

Rust 學習筆記:安裝 Rust

Rust 學習筆記&#xff1a;安裝 Rust Rust 學習筆記&#xff1a;安裝 Rust在 Windows 上安裝 Rust命令行創建 Rust 項目在 Mac/Linux 上安裝 Rust一些命令升級卸載cargo -hrustc -h 安裝 RustRoverrust-analyzer Rust 學習筆記&#xff1a;安裝 Rust 在 Windows 上安裝 Rust …

Opencv圖像處理:輪廓檢測、輪廓近似、繪制外接圓外接矩形

文章目錄 一、圖像輪廓檢測1、比較2、常見的輪廓檢測方法1&#xff09;基于梯度的方法2&#xff09;基于邊緣檢測器的方法3&#xff09;基于閾值的方法 3、查找輪廓與繪制輪廓4、參數解釋4、代碼解釋1&#xff09;讀取原圖像灰度圖并用二值化顯示2&#xff09;輪廓繪制3&#x…

精益數據分析(17/126):精益畫布與創業方向抉擇

精益數據分析&#xff08;17/126&#xff09;&#xff1a;精益畫布與創業方向抉擇 大家好&#xff01;一直以來&#xff0c;我都希望能和大家一起在創業和數據分析的領域中不斷探索、共同進步。今天&#xff0c;我們接著深入學習《精益數據分析》&#xff0c;這次聚焦于精益畫…

每天五分鐘深度學習PyTorch:圖像的處理的上采樣和下采樣

本文重點 在pytorch中封裝了上采樣和下采樣的方法,我們可以使用封裝好的方法可以很方便的完成采樣任務,采樣分為上采樣和下采樣。 上采樣和下采樣 下采樣(縮小圖像)的主要目的有兩個:1、使得圖像符合顯示區域的大小;2、生成對應圖像的縮略圖。 下采樣( 放大圖像)的…

代碼隨想錄訓練營第39天 || 198. 打家劫舍 213. 打家劫舍 II 337. 打家劫舍 III

198. 打家劫舍 思路&#xff1a; 動規五部曲&#xff1a; 1.dp數組及其下標的意義&#xff1a;dp數組表示當前房屋下偷與不偷的最大盜取金額 2.確定遞推公式&#xff1a;因為盜取房屋只能間隔盜取&#xff0c;并且還要取最大值。所以每個房屋都有盜取和不盜取兩個選擇&…

【AI 加持下的 Python 編程實戰 2_09】DIY 拓展:從掃雷小游戲開發再探問題分解與 AI 代碼調試能力(上)

DIY 拓展&#xff1a;從掃雷小游戲開發再探問題分解與 AI 代碼調試能力&#xff08;上&#xff09; 1 起因 最近在看去年剛出了第 2 版《Learn AI-assisted Python Programming》&#xff0c;梳理完 第七章 的知識點后&#xff0c;總感覺這一章的話題很好——問題分解能力的培…

使用DeepSeek-Prover-V1.5解決數學問題

DeepSeek-Prover-V1.5-RLRMaxTS是一個結合強化學習和搜索策略的自動定理證明系統。 1. 初等代數&#xff1a;二次方程求解 問題&#xff1a;解方程 x - 5x 6 0 操作步驟&#xff1a; 將問題轉換為Coq形式&#xff1a; Theorem quadratic : exists x : Z, x^2 - 5*x 6 0…