web-dev-qa-db-ja.com

OS X:SSHセッション中にコンピューターがスリープ状態にならないようにする方法

ネットワーク上のOS Xコンピュータにsshすると、セッションはOS Xまで続きますsleepモードに入ります。

これが私の[〜#〜] ssh [〜#〜]セッション中に発生するのを防ぐ方法はありますか?キー、または手動でスリープ機能を無効にしますか?

編集:sshセッションは通常、単純なsshfsマウントです。

29
Stefan

これはすぐに使えるソリューションではありませんが、他の誰かがソリューションを考え出さない場合は機能する可能性があります:-)

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 を参照してください。

9
echox

これにより、Macが電源に接続されている限り、SSH経由でMacを使用することができました。

System Preferences, Energy saver, Prevent computer from sleeping automatically when the display is off

Macが電源から外れると、すべてがシャットダウンするので、バッテリーの寿命を心配する必要はありません。

9
Benoit Duffez

OS Xに組み込まれているpmsetユーティリティには、希望どおりの設定が含まれています。 pmsetのマンページでttyskeepawakeの設定と付随する説明を確認してください。

次のコマンドはおそらくあなたが望むことをするでしょう:

Sudo pmset -c ttyskeepawake 1

-cフラグは、コンピューターが(バッテリーやUPSの電源ではなく)AC電源で実行されている場合にこの設定をアクティブにし、ttyskeepawake 1はアクティブなttyセッション(おそらくリモート)中にコンピューターがスリープしないようにします1)。 willセッションがスリープタイマーより長く非アクティブである場合はスリープを許可しますが、それが問題である場合は、コンピューターをまったくスリープ状態に設定しないでください。

6
robo

SSHを使用してリモートOSXマシンでシェルを開き、SSHセッションの間スリープしないようにするには:

$ ssh -t me@mymacbook caffeinate -i bash
6
starfry

Mac OS X 10.8以降、 caffeinate(8) コマンドを使用できるはずです。

caffeinate -s ssh server.example.comをお試しください。

5
200_success

.bash_profileに次のスクリプトを追加しました

if expr "$(ps -o comm= $PPID)" : '^sshd:' > /dev/null; then
  caffeinate -s $Shell --login
  exit $?
fi

プロセスがsshデーモンの直接の子である場合は、 caffeinate(8) コマンドを使用して同じシェルを実行し、sshセッション中にシステムがスリープしないようにします。

3
Kubo Takehiro

mac prevent sleepをWeb検索すると、使用できるユーティリティやトリックに関する多くの優れた情報が表示されます。

ただし、あなたの状況では、Macがスリープしないようにする非常に単純なコマンドラインプログラムを実行する別のsshセッションを実行することが実際にしたいのではないかと思います。 Appleは、完全なソースコードを Technical Q&A 1160:Preventing sleep で提供します)(残念ながら、現在、このページはAppleのサイトで壊れていますが、コピーをプルアップできますGoogleのキャッシュから。)

このプログラムがsshセッションから正常に実行できるかどうかはテストしていませんが、実行できるようです。

Sshfs実装は通常、常にリモートシステムにログインしたままではなく、ファイルまたはディレクトリが必要なときにセッションを実行するだけであることに注意してください。したがって、不眠症プログラムを実行するには、最小化されたターミナルウィンドウで実行する別のsshセッションが必要です。

この方法の利点は、Sudoを使用したり、システムの電源管理設定を変更したりする必要がないことです。

2
Neil Mayhew