回答:
さて、前回の答えにさらに進んで、cron(UNIXスケジュールサービスに組み込まれている)を取得して、スケジュールされたシャットダウンコマンドを実行する方法を説明します。
ルートとして実行され、強制されます。
sudo crontab -e
ログインパスワードを入力し、Enterキーを押す必要があります。
これで、テキストエディター(vim)になります。次のキーストロークを慎重に入力します。
毎日午前2時にマシンをシャットダウンしたい場合、次のように入力します。
* 2 * * * /sbin/shutdown -h now
毎日午前2:30にマシンをシャットダウンする場合は、次のように入力します。
30 2 * * * /sbin/shutdown -h now
これで、開始したコマンドラインに戻るはずです。
できました!
sudo
そこに置く必要はありませんか?それがおそらくハングアップする原因になることは知っていますが、実行するにはrootである必要があると確信していますshutdown
。
shutdown
は、/sbin
おそらくcronのデフォルトの$ PATHにありません。修正するには、sudo crontab -e
もう一度操作を行い、dd
行を削除するように入力して(ファイルが上記のリンクのようになっていると仮定して)、行をとして再入力し30 22 * * * /sbin/shutdown -h now
ます。
ただし、キャンセルできます:
停止yymmddhhmm
:
shutdown -h 1109211555
4分で停止します。
shutdown -h +4
/Library/LaunchAgents/me.lri.forceshutdown.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>me.lri.forceshutdown</string>
<key>ProgramArguments</key>
<array>
<string>shutdown</string>
<string>-h</string>
<string>now</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>23</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
</dict>
</plist>
plistが通常のユーザーによって所有されている場合、それをロードしようとするとエラーになりますlaunchctl: Dubious ownership on file (skipping)
。
sudo chown root /Library/LaunchAgents/me.lri.forceshutdown.plist
エージェントは、ログアウトして再度ログインするか、次の方法でロードできます。
sudo launchctl load /Library/LaunchAgents/me.lri.forceshutdown.plist
sudo crontab -e
`08 16 * * * /sbin/shutdown -h now`
これにより、通常の非強制シャットダウンが実行されます。
osascript -e 'tell app "System Events" to shut down'
これは、[ システム環境設定]> [省エネルギー]> [スケジュール]でスケジュールできます。これが強制シャットダウンを開始するかどうかはわかりません。試してみる必要があります。ただし、これはスケジュールされた電源の切断/自動化を自動化する組み込みオプションです。
端末コマンドでシステムを強制的にシャットダウンすることもできます(rootが必要です):
シャットダウン-h今
そのコマンドをlaunchdまたはcronのスケジュールされたタスクに入れることができます。チェックアウトこの記事をこれら2つのサービス上ではるかに多くの情報のため。
iWannaSleepという名前の適切なアプリケーションをチェックアウトすることもできます(これにより強制的にシャットダウンされるかどうかはわかりません)。
cd ~/Downloads/
curl --remote-name http://dl.dropbox.com/u/18414/ase/com.tjluoma.forceshutdown.plist
#下記の注を参照
sudo mv com.tjluoma.forceshutdown.plist /Library/LaunchAgents
sudo chown root:wheel /Library/LaunchAgents/com.tjluoma.forceshutdown.plist
sudo launchctl load /Library/LaunchAgents/com.tjluoma.forceshutdown.plist
書かれているように、plistはコンピューターを毎日午後11時(現地時間)にシャットダウンします。
時間を変更する場合は、テキストエディターでスクリプトを編集します。ここで抜粋した時間と分のキーを変更します。
<dict>
<key>Hour</key>
<integer>23</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
(24時間の使用に注意してください)
スケジュールされた時間にMacを安全にシャットダウンする場合は、Power Managerを検討してください。アプリケーションにプロセスをブロックさせずにうまくシャットダウンします:
不正なアプリケーションまたはプロセスがこれらのステップをブロックすることは非常に困難です。
shutdown
を使用shutdown
すると、グラフィカルアプリケーションを含むMac上のすべてのプロセスが強制終了されます。多くのアプリケーションでは、これは積極的な動作であり、状態やデータを保存する機会をアプリケーションに提供しません。
Power Managerには、スケジュールにシャットダウンするためのSchedule Assistantタスクが含まれています。
開示:Power Managerを作っている会社と仕事をしています。