ネットワーク上のOS Xコンピュータにsshすると、セッションはOS Xまで続きますsleepモードに入ります。
これが私の[〜#〜] ssh [〜#〜]セッション中に発生するのを防ぐ方法はありますか?キー、または手動でスリープ機能を無効にしますか?
編集:sshセッションは通常、単純なsshfsマウントです。
これはすぐに使えるソリューションではありませんが、他の誰かがソリューションを考え出さない場合は機能する可能性があります:-)
pmset
コマンドを使用して、電源管理設定を操作できます。詳細は manpage を参照してください。
操作したい興味深い設定はsleepです。
sleep-システムスリープタイマー(分単位の値、または無効にする場合は0)
したがって、次のコマンドを使用できます。
Sudo pmset sleep 25 # go to sleep after 25 minutes
Sudo pmset sleep 0 # disable sleep
次に、ログインとログアウトの後にこれらのコマンドをトリガーする必要があります。私がこの権利を覚えている場合、BashはMac OS Xのデフォルトのシェルであり、次の2つのファイルに移動します。
~/.bash_profile The personal initialization file, executed for login shells ~/.bash_logout The individual login Shell cleanup file, executed when a login Shell exits
それらをホームディレクトリで編集または作成し、適切なコマンドを追加します。必要に応じて、現在のスリープ値を一時ファイルに保存し、後でそこから復元します。
解決する最後の問題は、Sudoのパスワードプロンプトです。パスワードなしでpmsetを呼び出す権限をユーザーに与えるには、sudoeditを使用して/ etc/sudoersを編集します。 NOPASSWD
タグを使用する必要があります。これが初めての場合は、 sudoers manual を参照してください。
これにより、Macが電源に接続されている限り、SSH経由でMacを使用することができました。
Macが電源から外れると、すべてがシャットダウンするので、バッテリーの寿命を心配する必要はありません。
OS Xに組み込まれているpmsetユーティリティには、希望どおりの設定が含まれています。 pmset
のマンページでttyskeepawake
の設定と付随する説明を確認してください。
次のコマンドはおそらくあなたが望むことをするでしょう:
Sudo pmset -c ttyskeepawake 1
-c
フラグは、コンピューターが(バッテリーやUPSの電源ではなく)AC電源で実行されている場合にこの設定をアクティブにし、ttyskeepawake 1
はアクティブなttyセッション(おそらくリモート)中にコンピューターがスリープしないようにします1)。 willセッションがスリープタイマーより長く非アクティブである場合はスリープを許可しますが、それが問題である場合は、コンピューターをまったくスリープ状態に設定しないでください。
SSHを使用してリモートOSXマシンでシェルを開き、SSHセッションの間スリープしないようにするには:
$ ssh -t me@mymacbook caffeinate -i bash
Mac OS X 10.8以降、 caffeinate(8)
コマンドを使用できるはずです。
caffeinate -s ssh server.example.com
をお試しください。
.bash_profile
に次のスクリプトを追加しました
if expr "$(ps -o comm= $PPID)" : '^sshd:' > /dev/null; then
caffeinate -s $Shell --login
exit $?
fi
プロセスがsshデーモンの直接の子である場合は、 caffeinate(8) コマンドを使用して同じシェルを実行し、sshセッション中にシステムがスリープしないようにします。
mac prevent sleepをWeb検索すると、使用できるユーティリティやトリックに関する多くの優れた情報が表示されます。
ただし、あなたの状況では、Macがスリープしないようにする非常に単純なコマンドラインプログラムを実行する別のsshセッションを実行することが実際にしたいのではないかと思います。 Appleは、完全なソースコードを Technical Q&A 1160:Preventing sleep で提供します)(残念ながら、現在、このページはAppleのサイトで壊れていますが、コピーをプルアップできますGoogleのキャッシュから。)
このプログラムがsshセッションから正常に実行できるかどうかはテストしていませんが、実行できるようです。
Sshfs実装は通常、常にリモートシステムにログインしたままではなく、ファイルまたはディレクトリが必要なときにセッションを実行するだけであることに注意してください。したがって、不眠症プログラムを実行するには、最小化されたターミナルウィンドウで実行する別のsshセッションが必要です。
この方法の利点は、Sudoを使用したり、システムの電源管理設定を変更したりする必要がないことです。