タグ付けされた質問 「sleep」

プログラムの実行を指定された時間遅らせるためのコマンド。低電力モードの場合は、代わりに* suspend *を使用してください。

6
ループを1秒に1回正確に実行する
このループを実行して、毎秒いくつかのことを確認して印刷します。ただし、計算には数百ミリ秒かかることがあるため、印刷時間は1秒スキップすることがあります。 毎秒印刷することが保証されているようなループを書く方法はありますか?(もちろん、ループ内の計算にかかる時間は1秒未満です:)) while true; do TIME=$(date +%H:%M:%S) # some calculations which take a few hundred milliseconds FOO=... BAR=... printf '%s %s %s\n' $TIME $FOO $BAR sleep 1 done
33 bash  timestamps  sleep 


8
スリープコマンドなしで、bashでビジーな待機を避ける
次のことを行うことで、bashでtrueになる条件を待つことができます。 while true; do test_condition && break sleep 1 done ただし、反復(スリープ)ごとに1つのサブプロセスを作成します。私はそれらを避けることができます: while true; do test_condition && break done ただし、多くのCPUを使用します(ビジー待機)。サブプロセスと忙しい待機を避けるために、私は以下の解決策を思いつきましたが、それはいです: my_tmp_dir=$(mktemp -d --tmpdir=/tmp) # Create a unique tmp dir for the fifo. mkfifo $my_tmp_dir/fifo # Create an empty fifo for sleep by read. exec 3<> $my_tmp_dir/fifo # Open the fifo for …

8
cron対 スリープ-効率的なCPU /メモリ使用率の点でどちらが良いですか?
ケース: 特定の時間間隔でいくつかのコマンド/スクリプトを実行する必要があり、これには2つのオプションがあります。 cron-jobを設定します sleepスクリプト自体にループを実装します。 質問: リソース消費の観点から見た場合、どちらが良いオプションですか?あるcron良い方法は?cronはある種のトリガーまたは他のトリガーよりも効率的なトリガーを使用しますか?cronは、ジョブをチェックして開始するためにどのような手順を使用しますか?

2
systemdユーザーサービスを実行して、スリープ(別名、サスペンド、休止状態)でトリガーする方法は?
さまざまなソースに基づいて、私は一緒に石畳をしました~/.config/systemd/user/screenlock.service: [Unit] Description=Lock X session Before=sleep.target [Service] Environment=DISPLAY=:0 ExecStart=/usr/bin/xautolock -locknow [Install] WantedBy=sleep.target を使用して有効にしましたsystemctl --user enable screenlock.service。ただし、再起動、ログイン、サスペンド、および再開後(systemctl suspend蓋を閉めた状態と閉めた状態の両方でテスト)、画面はロックされず、には何もありませんjournalctl --user-unit screenlock.service。何が間違っていますか? 実行DISPLAY=:0 /usr/bin/xautolock -locknowすると、期待どおりに画面がロックされます。 $ systemctl --version systemd 215 +PAM -AUDIT -SELINUX -IMA -SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ +SECCOMP -APPARMOR $ awesome --version awesome v3.5.5 (Kansas City Shuffle) • Build: Apr 11 …

6
しばらくしてから何かを実行します(コンソールに結果を表示することもあります)
Ubuntuサーバー16.04を使用atし、現在のセッションでユーティリティを使用しechoて、特定の日時を指定せずに、今から1分後(たとえば)に何かを行うことを望んでいます。 これは失敗しました: echo 'hi' | at 1m 私が選択atした理由sleepは、スリープが現在のセッションをハンディキャップし、そのため、ほとんどの時間で作業しているセッションよりも、別のセッションのコマンドを遅延させるのにより適しているためです。AFAIRは、atこのように動作せず、私のセッションをハンディキャップしません。 Update_1 Pied Piperの答えで、私は試しました: (sleep 1m; echo 'hi') & この方法には問題があります。「hi」ストリームがプライマリプロンプト内に出力され、_それを含むプライマリプロンプトのすぐ下に空のセカンダリプロンプト()が追加されます。 USER@:~# (sleep 1m; echo 'hi') & [1] 22731 USER@:~# hi ^C [1]+ Done Update_2 ピーター・コーデの答えで私は試しました: (sleep 2 && echo -e '\nhi' && kill -WINCH $$ &) これはBash 4.4では正常に動作しますが、一部の古いバージョンでは動作しないようです(回答のコメントを参照)。私は自分の環境で個人的にBash 4.3を使用しています。
12 console  stdout  at  sleep  delay 

4
「スリープ」の残り時間を判断する方法は?
私が持っています: sleep 210m && for i in $(seq 1 5); do echo -e '\a'; sleep 0.5; done シンプルで飾り気のないタイマーとして実行され、何かをする必要があるときに通知します。それsleep 210mはPID 25347です。 睡眠の残り時間を把握しようとしています。私が思いついた中で最高の、元の睡眠量(210分)を入れてみます: $ echo "210 60 * $(ps -o etimes= 25347) - 60 ~ r n [:] P p" | dc 78:11 (説明:最初のビットは、元のスリープの秒数を計算します。$(ps…)ビットは、スリープが開始してからの時間を秒単位で取得し、残りはそれらを減算して、分と秒で表示します。) これは、一般的に便利だと思います。これを行うより良い方法はありますか?または、少なくとも睡眠時間を解析する賢い方法はps -o args?
11 shell  sleep 

3
次に特定の時間になるまで眠る
「4:00」のような特定の時間が次に発生するまでスリープする一連のコマンドまたは単一のコマンドが必要です。 どうすればいいですか? at私は現在てるスクリプトを残してはいけないため、コマンドまたはcronジョブはオプションではありません。 私が話している特定のケースは、画面で実行されているスクリプトです。スクリプトのある時点で必要な多くの重要な変数が格納されているため、スクリプト自体によるスクリプトの実行を停止しないことが非常に重要です。スクリプトは、常に通常の方法で実行されるとは限りません。特定の時間に実行する必要があるだけです。 スクリプトがファイルや、cronjobsやその他の画面などのその他のタスクを作成する必要がある場合、それは非常に有益です。これは単にデザインの問題です。 私はちょうどいい考えを持っていました: difference=$(($(date -d "4:00" +%s) - $(date +%s))) if [ $difference -lt 0 ] then sleep $((86400 + difference)) else sleep $difference fi もっと良いアイデアはありますか? 必要に応じて、さらに情報が追加されます!
11 bash  date  time  sleep 

3
X秒ごとにコマンドを実行する
コマンドを10秒ごとに実行し、それをバックグラウンドで実行したい(それによってwatch?を削除したい)。すべての回答は次のようなものを示していますが、これは常に11〜14秒実行されます。どうすればこれを達成できますか? while true; do # perform command that takes between 1 and 4 seconds sleep 10 done

1
リモートでスリープからのウェイクモニター
私はcronデーモンを介して起動されるビデオを表示するモニターが接続されているUbuntuサーバーを実行xdmしopenboxています。 モニターを一定時間使用しないと、モニターがスリープモードになり、ビデオプロセスでウェイクアップできません:モニターが黒のままです。 モニターを起動するにはどうすればよいですか?可能であればパッケージをインストールせず、マシンに物理的にアクセスしません。
10 openbox  sleep 

2
システムの電源をオフにしながら、ネットワーク上で使用できるようにする方法
データとバックアップを提供するために、ネットワークにファイルサーバーをインストールすることを検討しています。 このマシンをいつでも利用できるようにしたいのですが、(電力を節約するために)常にオンにしておくことはしたくありません。 しばらくすると自動的に一時停止(または電源オフ)し、接続しようとすると(明示的にWOLを送信せずにLANマジックのウェイクアップを使用して)自動的に電源が入るようにセットアップすることは可能ですか?パケット)?

3
&&と;の違いは何ですか バックグラウンドに睡眠をフォークするとき?
私は背景で眠るようにプロセスをフォークすることについて質問しました。 私が思いついた表記は次のようになります。 sleep 10 && echo "hello world" & 別の質問に対するこの回答では、別の形式を使用しています。 ( sleep 10 ; echo "hello world" ) & &&最初のプロセスがtrueを返した場合にのみ、2番目のプロセスを開始できることを知っています。眠れませんか?どちらかを優先する必要がある状況はありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.