画面共有先のMacをスリープさせる方法

新旧mac mini 5台をMacPro(ホスト)の画面共有経由で使っています。ゲームやビデオは使わずオーディオ関係中心のためもあってか、画面操作のストレスを感じることはほとんどなく快適なのですが、スリープを失敗することが多くて少し困っています。


画面共有からマウスでリモート側のスリープを選んだとき、リモート側がスリープした後、マウスをMacPro(ホスト)の共有ウインドウから出さなくてはなりませんが。そのときマウスを動かすとせっかくスリープしようとしているmac miniが起き上がってしまいます。


幸いスリープのプルダウンメニューは画面左端にあるので、スリープ後マウスを素早く共有ウインドウから外に出し、そこでマウスを止めて数秒秒待ってから左上の赤丸を押して共有ウインドウを閉じる、という操作をしていますが、ときどきsleep失敗します。

良い方法は無いでしょうか。


リモート側がmac mini 2018(Ventura)の場合は、ランプが点滅してくれないので、sleepが成功したのかどうかもよくわかりません。



Mac mini (2018)

投稿日 2023/09/09 18:41

返信
スレッドに付いたマーク ランキングトップの返信

投稿日 2023/09/10 18:08

別の案としては Remote Apple Events により接続先のマシンをスリープさせ、その後画面共有のウインドウを閉じる方法も考えられます。(接続先のマシンで Remote Apple Events を有効にしておく必要があります)


この方法だと画面共有のウインドウを触らずに済むので、意図せずスリープが解除されることは軽減できるかもしれません。


on run
    # "eppc://[user[:password]@]IP_address" のところは適宜書き直す
    set remote_machine to "eppc://[user[:password]@]IP_address"

    using terms from application "Finder"
        tell application "Finder" of machine remote_machine
            open application file id "com.apple.systemevents"
        end tell

        delay 1

        tell application "System Events" of machine remote_machine
            sleep
        end tell
    end using terms from

    #
    # 画面共有のウインドウを閉じる処理
    #
end run


参考: AppleScript Fundamentals


上記のスクリプトは当方の環境では動きますが、Ventura で動くはは分かりません。ダメだったらごめんなさいということで。


環境

  • ホスト: Mac mini 2018 / Mojave 10.14.6
  • クライアント: Mac mini Mid 2010 / High Sierra 10.13.6


返信: 14
スレッドに付いたマーク ランキングトップの返信

2023/09/10 18:08 el156 への返信

別の案としては Remote Apple Events により接続先のマシンをスリープさせ、その後画面共有のウインドウを閉じる方法も考えられます。(接続先のマシンで Remote Apple Events を有効にしておく必要があります)


この方法だと画面共有のウインドウを触らずに済むので、意図せずスリープが解除されることは軽減できるかもしれません。


on run
    # "eppc://[user[:password]@]IP_address" のところは適宜書き直す
    set remote_machine to "eppc://[user[:password]@]IP_address"

    using terms from application "Finder"
        tell application "Finder" of machine remote_machine
            open application file id "com.apple.systemevents"
        end tell

        delay 1

        tell application "System Events" of machine remote_machine
            sleep
        end tell
    end using terms from

    #
    # 画面共有のウインドウを閉じる処理
    #
end run


参考: AppleScript Fundamentals


上記のスクリプトは当方の環境では動きますが、Ventura で動くはは分かりません。ダメだったらごめんなさいということで。


環境

  • ホスト: Mac mini 2018 / Mojave 10.14.6
  • クライアント: Mac mini Mid 2010 / High Sierra 10.13.6


2023/11/05 07:46 Hiro__S への返信

皆様ありがとうございます。


ターミナルとする側にsshpassをインストールして、

sshpass -p (パスワード) ssh (IPアドレス) -l (ユーザー名) pmset sleepnow

とすることにしました。


スリープしている状態で

sshpass -p (パスワード) ssh (IPアドレス) -l (ユーザー名) pmset -g log | grep Using | tail -10

のようにすると、今までスリープしていたのかどうかがわかります。

このコマンド自体がDarkWakeさせてしまいますが。


2023/09/10 08:10 はに への返信

ありがとうございます。


sudo pmset sleep 1

だと、システムが自動でスリープに入るまでの時間を設定してしまうので、


先の回答のように画面共有を閉じる時間余裕を作って5秒後にスリープするには、

sleep 5 ; pmset sleepnow

となると思います。

これでも上のAppleScriptと同じ動きになるようです。

sleepnowはsudo不要でした。

2023/09/10 08:19 el156 への返信

画面共有はsshのように閉じるとその下で動いているプロセスを閉じてしまう、というようなものではなくて、

ただリモートmacの画面やキーボードのUIを共有しているだけなので、

閉じてしまっても動いていたスクリプトやプロセスは動き続けます。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

画面共有先のMacをスリープさせる方法

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。