Linux Tips

一定の時間後にプログラムを実行するには

北浦訓行
2001/2/22

 一定の時間後にプログラムを実行するには、sleepコマンドやatコマンドを使用する。

 sleepは、指定した時間だけシェルの実行を停止するコマンドだ。従って、

$ sleep 10;import -window root capture.tif

のように指定すると、10秒後にimportコマンドが実行される。sleepでは、引数として停止する時間を指定する。デフォルトの単位は秒だが、数字の後にm(分)、h(時間)、d(日)を追加して、単位を変更することができる。例えば、以下のようにすると、10分後にlsコマンドが実行されることになる。

$ sleep 10m;ls

 sleepコマンドを実行している間は、当然のことながらそのシェルでの作業ができない。別にシェルを起動すればこの問題はクリアできるが、atコマンドを使えば、もっとスマートだ。

 atは、指定した時間にジョブを実行するためのコマンドだ。atコマンドは、atdというデーモンが起動していなければ使えない。多くのディストリビューションでは自動実行されているはずだが、一応以下のコマンドで確認する。

$ ps ax | grep atd
  381 ?        S      0:00 rpc.statd
  487 ?        S      0:00 /usr/sbin/atd
 1537 pts/0    S      0:00 grep atd
$

 さて、atコマンドで実行するジョブを指定するには、標準入力から指定する方法と、ファイルに記述したコマンドを実行させる方法がある。

 標準入力から指定するには、以下のように行う。

$ at now + 1 hour
at> ls
at> date
at> ([Ctrl]+[D]キーを押す)
warning: commands will be executed using /bin/sh
job 8 at 2001-02-09 14:38
$

 ファイルに記述したコマンドを実行させるには、

ls
date

などと記述したファイル(ここでは「at-test」という名前)をテキストエディタで作成しておき、-fオプションでそのファイルを指定する。

$ at noon -f at-test
warning: commands will be executed using /bin/sh
job 10 at 2001-02-09 14:46
$

 指定したコマンドの実行結果が表示される場合は、メールでその内容が実行を指定したユーザーあてに送られる。例えば、上記の例のように、lsとdateコマンドを指定した場合は、ディレクトリの一覧とdateコマンドの結果が送られることになる。

 atコマンドで予約したジョブを見るには、atqコマンドを使用する。また、予約したジョブをキャンセルするには、キャンセルしたいジョブ番号を引数として指定して、atrmコマンドを実行する。

$ atq
8       2001-02-09 14:38 a
$ atrm 8
$ atq
$

 時間の指定では、MM/DD/YYやhh:mmといった形式のほかにも、now、am、pm、noon、midnight、teatime、sun、mon、todayなどの時間を表す言葉が使用できる。これらは、timespecというファイルに記述してある。timespecの場所は、ディストリビューションによって異なるので、locateまたはfindコマンドで検索するとよい。ちなみに、VineLinux 2.1は/usr/doc/at-3.1.7/に、Turbolinux Workstation 6.0は/usr/share/doc/packages/at-3.1.8/にある。

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間