概要
指定時間だけ待機します。スクリプトの間隔調整や簡単な同期待ちで役立つ基本コマンドです。
基本構文
sleep 数値[接尾辞]...詳細解説
sleepは、指定した時間だけ現在の処理を待機させるコマンドです。見た目は単純ですが、再試行、タイミング調整、監視の間引き、デモ用の動作確認など、実務でも頻繁に登場します。
GNU実装では秒だけでなく、m、h、dの接尾辞や小数秒も扱えます。移植性を重視するスクリプトでは環境ごとの差を意識して書く必要があります。
sleepはあくまで単純な待機であり、相手が準備できるまで待つことを保証するものではありません。
このコマンドを使う場面
再試行前の間隔調整、簡単なデモ、短いループ間隔、ジョブ制御の練習に使います。
まず安全に試す方法
1. date +%T
2. sleep 2
3. date +%T
4. sleep 0.5
3分ミッション
少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。
-
sleep 2とsleep 0.5を試し、待機時間の差を体感します。
-
while文とsleepを組み合わせ、一定間隔でメッセージを出す練習をします。
資格試験との関連
-
LinuC レベル1
範囲: 1.01.4 プロセスの生成、監視、終了根拠: officialLinuCレベル1では、プロセスの確認、監視、終了の基礎が問われます。
-
LPIC-1
範囲: 103.5 Create, monitor and kill processes根拠: officialLPIC-1では、プロセスの確認、監視、終了の基礎が問われます。
-
共通基礎
範囲: Linuxコマンド基礎根拠: editorial試験横断で、sleepはLinux運用の基礎体力を支える重要なコマンドです。
実行結果サンプル
-
date +%T sleep 2 date +%T12:00:00 12:00:02 -
sleep 0.50.5秒待機
戻り値コード
- 0 正常終了。指定時間の待機を完了しました。
- >0 不正な時間指定などで待機を開始できませんでした。
使用例
sleep 5sleep 0.5sleep 2m
よくあるエラー
-
sleepを入れたのにサービス準備が間に合わない 原因: 固定待機だけでは相手の準備完了を保証できません。対処: 状態確認コマンドや再試行ループと組み合わせます。
-
環境によって小数秒指定が動かない 原因: 実装差により対応範囲が異なります。対処: 移植性が必要な時は単純な秒指定を使います。
導入・互換性情報
POSIXでは基本的な秒指定が中心ですが、GNU実装では小数やm、h、dなどの接尾辞が使えます。
注意点 / セキュリティリスク
危険度は低いですが、状態確認なしの固定待機を多用すると、待ち過ぎや待ち足りなさの両方を招きます。
FAQ
-
Q. sleepだけで同期制御できますか。 A. 単純な待機には使えますが、状態確認まで含めた同期には別の確認手段も必要です。
-
Q. 複数引数を渡せますか。 A. GNU実装では複数値の合計を待機できますが、単純な一つの値が安全です。
参照リンク
- カテゴリー: Process And Jobs
- レベル: Beginner
- 対応試験: LinuC, LinuC レベル1, LPIC, LPIC-1, 共通基礎