
目的
・ハードオフとかで安くで落ちてるiMacを情報表示端末にする。
・指定したWEBページをスケジュール表示させる。
概要
平日(月〜金)のみ以下を自動実行する。
・07:30 電源OFF状態から起動
・起動後1回だけ再起動
・Safariで指定URLを全画面表示
・08:30 Safari終了 → 完全シャットダウン
・18:00 電源OFF状態から起動
・起動後1回だけ再起動
・Safariで指定URLを全画面表示
・20:00 Safari終了 → 完全シャットダウン
土日は動作なし。
対象OS:macOS Ventura
自動ログイン:有効
電源常時接続
作業手順
以下、ターミナルで行う。ほぼコピペでOK。
① /usr/local/bin ディレクトリ作成
sudo mkdir -p /usr/local/bin② kiosk 実行スクリプト作成
sudo nano /usr/local/bin/kiosk.sh内容
「****」部分は表示したいページのURL
#!/bin/bash
FLAG="/tmp/kiosk_reboot_done"
if [ ! -f "$FLAG" ]; then
touch "$FLAG"
sudo shutdown -r now
exit 0
fi
rm -f "$FLAG"
open -a Safari "https://**********.***/*****/"
sleep 5
osascript -e 'tell application "Safari" to activate'
osascript -e 'tell application "System Events" to keystroke "f" using {control down, command down}'
HOUR=$(date +%H)
if [ "$HOUR" = "07" ]; then
sleep 3600
else
sleep 7200
fi
killall Safari
sudo shutdown -h now保存後:
sudo chmod +x /usr/local/bin/kiosk.sh③ sudoパスワード省略設定
sudo EDITOR=nano visudo最下部に追加
ユーザー名 ALL=(ALL) NOPASSWD: /sbin/shutdown④ ログイン時自動実行設定
nano ~/Library/LaunchAgents/com.tabi.kiosk.plist内容:
「****」のとこはユーザー名とかにする
<?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.****.kiosk</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/kiosk.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>読み込み
「****」部分を上とあわせる
launchctl load ~/Library/LaunchAgents/com.****.kiosk.plist⑤ 平日電源ON自動登録スクリプト
sudo nano /usr/local/bin/register_power.sh内容:
#!/bin/bash
pmset schedule cancelall
for i in {1..5}
do
DAY=$(date -v+"$i"d +"%m/%d/%y")
sudo pmset schedule wakeorpoweron "$DAY 07:30:00"
sudo pmset schedule wakeorpoweron "$DAY 18:00:00"
done保存後:
sudo chmod +x /usr/local/bin/register_power.sh⑥ 毎週日曜に翌週分登録
「****」部分を上とあわせる
nano ~/Library/LaunchAgents/com.****.powerregister.plist内容:
「****」部分を上とあわせる
<?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.****.powerregister</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/register_power.sh</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Weekday</key>
<integer>0</integer>
<key>Hour</key>
<integer>23</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
</dict>
</plist>launchctl load ~/Library/LaunchAgents/com.tabi.powerregister.plist
「****」部分を上とあわせる
launchctl load ~/Library/LaunchAgents/com.tabi.powerregister.plist動作確認方法
現在の電源予約確認
pmset -g sched手動テスト
/usr/local/bin/kiosk.sh