コマンドラインから休止状態/サスペンドし、特定の時間にそれを行うにはどうすればよいですか


36

コマンドラインからシステムをサスペンド/休止状態にする方法を見つけることができました。コマンドラインからどのようにサスペンド/休止状態にできますか?

ただし、コマンドラインを使用して、絶対(例、午後11時)または相対(例、30分)で、特定の時間にサスペンド/休止状態にする方法を知りたいと思います。

シャットダウンでこれを行う方法は既に知っていますが、コマンドが似ているかどうかは確かです。

回答:


43

atコマンドを使用して、その質問で詳しく説明されいるコマンドの実行など、アクションをスケジュールできます。

たとえば、30分で休止状態にする場合:

echo 'pmi action hibernate' | at now + 30 min

または、午後11:00に中断する場合:

echo 'pmi action suspend' | at 11pm

あなたのようにコマンドを実行する必要がある場合はroot、実行atしてsudoというよりコマンド自体sudo(以降ではsudo、あなたのパスワードを要求しないように、それを構成した場合を除きのみ、対話的に実行する必要があります)。たとえば、pm-hibernateand を使用する上記のコマンドと同等のものは次のとおりpm-suspendです。

echo pm-hibernate | sudo at now + 30 min

echo pm-suspend | sudo at 11pm


両方の状況が要求されたことを理解してくれてありがとう...私もこれを反映してタイトルを編集しました。両方の状況を含めるように回答を修正しました。
cprofitt

どのように仕事をクリアすることができますか?
コピ

2
@Rexfordこのatrmコマンドは、によって作成されatたジョブを削除します。
エリアケイガン

9

相対的な指定(「30分後」など)では、sleepコマンドを使用して、一時停止/休止状態のコマンドを待機させることができます。


例:

30分待ってから中断します。

sudo sleep 30m; sudo pm-suspend

1時間待ってから、休止状態にします。

sudo sleep 1h; sudo pm-hibernate

私もこのアプローチが好きです。
コピ

2
1時間後pm-hibernate、再びルートのパスワードが必要になり、サスペンドは発生しません。
ヴィタリーズダネビッチ

パスワードを求められるのを避けるために、rootとしてログインするのはどうですか?
banan3'14

4

繰り返される特定の時間-コンピューターのシャットダウンのように、毎日特定の時間です。cronを使用します。

crontab -e

以下を追加します。

15 14 1 * * pmi action suspend

カスタマイズしたい場合。

* * * * * command to be executed
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)

一度だけの仕事のためにatコマンド

たとえば、30分で休止状態にする場合:

echo 'pmi action hibernate' | at now + 30 min

または、午後11:00に中断する場合:

echo 'pmi action suspend' | at 11pm

2
cron特定の時刻、または特定の曜日、特定の月、または特定の年の特定の時間にサスペンドまたは休止状態にすることが目標である場合、使用することは良い解決策です。しかし、単一のサスペンドまたはハイバネーションをスケジュールするために、それはEdericoが求めていたものであるように思われます(そして、それはもっとやりたいことです)、atコマンドを使用する必要があります。(cronたとえば、sedまたはを使用して、関連するcrontabをイベントに編集することにより、単一のイベントをスケジュールできますがawk、これは非常に複雑で不要です。使用してくださいat。)
Eliah Kagan

質問によって要求された相対的な用語には適合せず、特定のスケジュールにのみ有用です。
ブルーノペレイラ

はい、これは要求された「特定の時間」の例でした。「しかし、私は絶対的な(たとえば、午後11時)に、与えられた時間に休止状態/一時停止するコマンドラインを使用する方法を知っていただきたいと思います」
cprofitt

1
回答を編集して使用方法atに関する情報を追加しましたが、残念ながら追加した情報は正しくありません。<オペレータリダイレクトからテキストファイルまたはデバイスは、その左側に指定されたコマンドの標準入力にその右側に指定されました。(私の答えのように)の<代わりに使用したい場合は、その内容として(または)を使用してファイルを作成する必要があります。ここでは、このような複雑さが改善されます。|pmi action suspendpmi action hibernate|
エリアケイガン

一般的なガイドラインとして、(たとえば)のcat左側にコマンドがある場合、それを式()に置き換えることができます。ただし、の左側にコマンドがある場合、それを式で簡単に置き換えることはできません。|cat foo | bar<bar < fooecho|<
エリアケイガン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.