USBを作成してMacMiniをシャットダウンする方法

0
2022.01.11

古いMacminiを持っていて、それをホームサーバーとして使用したいと思います。ディスプレイ、キーボード、マウスを接続したくありません。 Wi-Fiルーターとローカルサーバーとして使用します。でも、安全のために外出するときは時々シャットダウンします。強制シャットダウンであるため、毎回物理ボタンを押すとシステムが損傷する可能性があります。いつものようにシャットダウンしたいのですが、マウス、ディスプレイ、キーボードがありません。 USBが最適なソリューションだと思います。

USB接続を検出するデーモンやオートマターのようなものを作成する必要があると思います。USB名が「ShutDown」の場合、「shutdown」と呼ばれます。私がそれを正しくするのを手伝ってください。私は開発者ですが、AppleScriptingの経験はありません。

回答
1
2022.01.12

これは本当に速くて汚いです、私はそれをテストする時間がありませんでした。基本的に、何かがマウントされたときにスクリプトを実行します。いつでも実行できますが、スクリプトを使用して、探している1台のドライブを確認します。パスワードを入力せずにシャットダウンする権限を得るには、launchdrootジョブでこれを実行する必要があります。

以下は、/ Library / LaunchDaemonsにインストールするための構成ファイルです。

 <?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>EnvironmentVariables</key>
    <dict>
        <key>PATH</key>
        <string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin</string>
    </dict>
    <key>Label</key>
    <string>server.shutdown</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/sh</string>
        <string>/usr/local/bin/server_shutdown.sh</string>
    </array>
    <key>RunAtLoad</key>
    <false/>
    <key>StartOnMount</key>
    <true/>
</dict>
</plist>

ターミナルに移動し、rootとして次を実行して、

 launchctl load /Library/LaunchDaemons/server.shutdown

ここから、/usr/local/binserver_shutdown.shと呼ばれる新しいスクリプトを作成し、chmod +x /usr/local/bin/server_shutdown.shとそれを実行可能にします。

 #!/bin/zsh

DIR="/Volumes/SHUTDOWN/"

if [ -d "$DIR" ]; then
  # Take action if $DIR exists. #
  say "The computer will shut down now."
  #shutdown -h now
fi

必要に応じて、そこにチェックインして再起動することができます。私はあなたに可聴メッセージを与えるためにsayコマンドを入れました。スクリプトが機能することを確認したら、shutdownコマンドの前にある#を消去するだけです。

これがお役に立てば幸いです。