macos - 每天使用 launchd 运行 shell 脚本(具有 sudo 权限)
问题描述
我正在尝试设置两个启动代理,每个代理每天运行一个 shell 脚本 - 目标是在一天开始时延长“显示睡眠”设置,并在晚上减少它。这是我的已启动 .xml 文件。它的位置是:/Library/LaunchAgents
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.extendsleep</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/extend-sleep.sh</string>
</array>
<key>StartCalendarInterval</key>
<array>
<dict>
<key>Weekday</key>
<integer>1</integer>
<key>Hour</key>
<integer>8</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
<dict>
<key>Weekday</key>
<integer>2</integer>
<key>Hour</key>
<integer>8</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
<dict>
<key>Weekday</key>
<integer>3</integer>
<key>Hour</key>
<integer>8</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
<dict>
<key>Weekday</key>
<integer>4</integer>
<key>Hour</key>
<integer>8</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
<dict>
<key>Weekday</key>
<integer>5</integer>
<key>Hour</key>
<integer>8</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
</array>
</dict>
</plist>
这是我要执行的 shell 脚本。它的位置是:/usr/local/bin/extend-sleep.sh
.
#!/bin/sh
su systemsetup -setdisplaysleep 60
我所知道的是脚本没有成功更改显示睡眠设置。我猜可能发生的一件事是权限错误,因为该systemsetup
命令需要 sudo,但我不确定。有什么想法吗?
我正在运行 Mac OS 11.5.2 (Big Sur)
解决方案
推荐阅读
- mpdf - mpdf临时文件目录在服务器上传时不可写
- sqlite - 将小时数添加到 Sqlite 中的时间戳列会导致 NULL,为什么?
- openstreetmap - GeoServer / GWC / WMTS Return (400) Bad Request for part of map
- python - 如何实现在超类中打印对象的方法?
- javascript - 从远程服务器刷新语义 UI 下拉列表的内容
- c# - Google 报告未显示在 Mvc c# 的 pdf 报告中
- tailwind-css - 在全屏 div 中与 Tailwind CSS 垂直对齐
- typescript - typescript compiler api - 如何检测属性类型是枚举还是对象
- mysql - MySQL在插入触发器之前删除插入条件
- mysql - 如何避免添加重复的外键约束