sleep スリープ

英語表記sleep

日本語表記一時停止

正式名称sleep

危険度安全

What does it mean?

指定時間だけ待機します。スクリプトの間隔調整や簡単な同期待ちで役立つ基本コマンドです。

Command Quest

sleep を今日の道具にする

指定時間だけ待機します。スクリプトの間隔調整や簡単な同期待ち...

$ sleep 数値[接尾辞]...
関連用語0
次のコマンド0
FAQ2
参照5

概要

指定時間だけ待機します。スクリプトの間隔調整や簡単な同期待ちで役立つ基本コマンドです。

基本構文

sleep 数値[接尾辞]...

詳細解説

sleepは、指定した時間だけ現在の処理を待機させるコマンドです。見た目は単純ですが、再試行、タイミング調整、監視の間引き、デモ用の動作確認など、実務でも頻繁に登場します。

GNU実装では秒だけでなく、m、h、dの接尾辞や小数秒も扱えます。移植性を重視するスクリプトでは環境ごとの差を意識して書く必要があります。

sleepはあくまで単純な待機であり、相手が準備できるまで待つことを保証するものではありません。

このコマンドを使う場面

再試行前の間隔調整、簡単なデモ、短いループ間隔、ジョブ制御の練習に使います。

まず安全に試す方法

1. date +%T
2. sleep 2
3. date +%T
4. sleep 0.5

3分ミッション

少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。

  1. sleep 2とsleep 0.5を試し、待機時間の差を体感します。

  2. while文とsleepを組み合わせ、一定間隔でメッセージを出す練習をします。

資格試験との関連

  • LinuC レベル1
    範囲: 1.01.4 プロセスの生成、監視、終了
    根拠: official
    LinuCレベル1では、プロセスの確認、監視、終了の基礎が問われます。
  • LPIC-1
    範囲: 103.5 Create, monitor and kill processes
    根拠: official
    LPIC-1では、プロセスの確認、監視、終了の基礎が問われます。
  • 共通基礎
    範囲: Linuxコマンド基礎
    根拠: editorial
    試験横断で、sleepはLinux運用の基礎体力を支える重要なコマンドです。

オプション

  • s 秒
    秒単位で待機します。
    sleep 5s
  • m 分
    分単位で待機します。
    sleep 2m
  • h 時間
    時間単位で待機します。
    sleep 1h
  • d 日
    日単位で待機します。
    sleep 1d

実行結果サンプル

  • date +%T sleep 2 date +%T
    12:00:00
    12:00:02
  • sleep 0.5
    0.5秒待機

戻り値コード

  • 0 正常終了。指定時間の待機を完了しました。
  • >0 不正な時間指定などで待機を開始できませんでした。

使用例

  • sleep 5
  • sleep 0.5
  • sleep 2m

よくあるエラー

  • sleepを入れたのにサービス準備が間に合わない
    原因: 固定待機だけでは相手の準備完了を保証できません。
    対処: 状態確認コマンドや再試行ループと組み合わせます。
  • 環境によって小数秒指定が動かない
    原因: 実装差により対応範囲が異なります。
    対処: 移植性が必要な時は単純な秒指定を使います。

導入・互換性情報

POSIXでは基本的な秒指定が中心ですが、GNU実装では小数やm、h、dなどの接尾辞が使えます。

注意点 / セキュリティリスク

危険度は低いですが、状態確認なしの固定待機を多用すると、待ち過ぎや待ち足りなさの両方を招きます。

FAQ

  • Q. sleepだけで同期制御できますか。
    A. 単純な待機には使えますが、状態確認まで含めた同期には別の確認手段も必要です。
  • Q. 複数引数を渡せますか。
    A. GNU実装では複数値の合計を待機できますが、単純な一つの値が安全です。

参照リンク

関連記事