コマンドラインからMacのスリープを防ぐ方法は?


12

リモートコンピューターでスクリプトを長時間実行しています。

私はsshセッションを終了したくないので、シェルスクリプトに入力する必要があります。

コマンドラインからMacがスリープ状態になるのを防ぐにはどうすればよいですか?


3
OS Xのバージョン
nohillside

回答:


19

Mountain Lionでは、caffeinateコマンドを使用できます。

caffeinate -u -t 1000

1000秒間アイドルスリープを防ぎます。


1
私は、「カフェイン」コマンドラインの組み合わせ(上記のものを含む)や、マーベリックスのCaffeine.appで、蓋を閉めたときの睡眠を妨げて、まだ成功していません。InsomniaX.appは、これまでのところ、ふたのスリープを妨げているだけのものですが、動作するcmdlineバージョンをまだ見つけていません(まだgoo.gl/CU06jbを動作させていません-廃止されている可能性があります)。それでも、ふたを閉じたときにプログラム可能な限られた時間だけスリープを拒否しているときにも、ディスプレイパスワードの要件を有効にするものが欲しいのですが、InsomniaX.appもそうではないようです。
ジョニーUtahh 2014

1
同様の問題。私はヨセミテにいて、ターミナルでカフェインを実行していますが、しばらくすると画面が暗くなり、ログインし直す必要があります。これは、カフェインがMacを起動させていないことを示唆しています。 Wifi接続は持続できます/私が行っていることは何でも続行できます。
dmonopoly 2015年

12

この問題の解決策は、クライアント(Mac)を起動させないことです。このようなアプローチの使用は信頼できません。ネットワーク接続が失われた場合はどうなりますか?Macが起動していても、スクリプトは停止します。

使用する nohup

長時間実行スクリプトがと呼ばれている場合はeternity.sh、次のことを試してください。

nohup /path/to/eternity.sh > /path/to/output.out &

これで接続を閉じることもでき、スクリプトは引き続き実行されます。&接続を開いたままにしてコマンドを入力できるように、プロセスの背景が表示されます。次の方法でスクリプトからの出力を表示します。

tail -f /path/to/output.out

スクリプトがパス上にあり、スクリプト出力をoutput.out現在のディレクトリに書き込む場合は、例のパスはオプションです。

一度に何日も実行されるスクリプトを管理しています。このようなスクリプトは、ターミナルから切り離す必要があります。ありがたいことに、nohupこれを達成するための覚えやすいコマンド呼び出しを提供します- ハングアップがないと考えてください。


5
もご覧くださいman screen

@mankoff-私はすでに画面を使用しています。スライスされた品種の発見以来、それは最高のコマンドです。;)質問の主なポイントは、Macがスリープ状態になったときに「ssh to @ somewhere」の必要をなくすことです-私は単にsshセッションを終了したくないだけです-リモート側のコマンドはすでに画面で「保護」されています。;)
こばめ2012

@ephsmith-問題は、sshセッションの終了を排除する方法です...リモートコマンドが対話型コマンドではない状況では、ofc nohupが適しています。対話型コマンドの場合、画面ははるかに優れたソリューションです。とにかく返信してくれてありがとう。
kobame 2012

1
@kobame、おそらく質問のポイントとこの追加情報は、元の質問に含まれているはずです。質問の最初の行は、長時間実行スクリプトを参照しています。nohupへの参照につながったインタラクティブではないと思いました。
エフスミス2012

@kobame、これらの回答のいずれかで問題が解決しましたか?
ephsmith 2012

8

別のオプションはpmsetです。コマンドpmset noidle を使用して、pmsetが実行されている限り、スリープを防ぎます。残念ながら、これをpmset実行するには、別のターミナルウィンドウが必要です。ただし、他のオプションはcaffeinate、特定の時間のみを設定できます。したがって、2番目のSSHセッションを開くか、時間の制約に対処するかを選択することが問題になります。

編集:によるとbinarybobさんのコメント:、あなたが実際にこのような背景の中でそれを実行することができますpmset noidle &に戻って取得するにはpmsetタイプfg


pmsetを使用してバックグラウンドで実行することもできるpmset noidle &ため、現在のコマンドプロンプトを引き続き使用できます。戻るには入力fgpmsetて、Ctrl + Cでそれを実行できます
binarybob

@binarybobああ!知らなかった。先端をありがとう!
daviesgeek

@davisgeek-本当にいい!チップをありがとう。
kobame 2012

1
これはIPythonノートブックでも機能し!pmset noidleます。IPythonノートブックを提供するデスクトップとリモート接続するラップトップがある場合に非常に便利です。
Jason S

1
これは私にはうまくいきません。正常に実行され、「アイドルスリープを回避しています(終了するには^ C)...」というメッセージが表示されますが、それでもスリープ状態になります。
Iulian Onofrei 2017

6
caffeinate -i -s /bin/ssh ...

説明:

-i -アイドルスリープを防止します。

-s-システムのスリープを防止します(完全に、ふたを閉じても)。注:AC電源でのみ機能します。

/bin/ssh-実行したいコマンドを書き続けるだけです。のssh代わりに直接使用すること/bin/sshもできます。

結果:sshコマンドが実行されている限り、システムはスリープしません。



-3

StarMessageスクリーンセーバー(http://starmessagesoftware.com/moonscreensaver/)には、MACを2時間、8時間、または永続的に起動させておくオプションもあります。MACスリープを無効にするこの方法は、カフェインよりもはるかに簡単です。


これはコマンドラインでどのように実行されますか?
user151019 2016

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.