[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:06323] Plamo Linux 2.0 のbatch コマンドについて



としです。

#コレまたすでに知られている問題で FAQ 的内容ならすみません。

Plamo Linux 2.0 の batch コマンドなのですが、実行してみると、

$ batch
Garbled time

となって処理を終了します。batch コマンドは、時刻指定ではなく、負荷が
一定の値(0.8以下)ならジョブを指定するはずなので、時刻指定は不要では
ないかと思います。

試しに Plamo Linux 1.4.x なマシンで上のコマンドを試すと、エラーには
ならず、コマンド入力待ちに入ります。

で、少し気になったので、batch コマンド(at コマンド)のソースを調べて
みると、

(1) Plamo Linux 1.4.x で採用されている? at(at-2.9b.tgz) では、batch 
    は at のシンボリックリンク。
    at コマンドは、起動時、プログラム名(argv[0]) を見て、at で起動さ
    れたか batch で起動されたか調べている。batch で起動されたら、時
    間は現在時刻を取得。

(2) しかし、Plamo Linux では、at-3.1.7.tar.gz を採用?
    at-3.1.7 では、プログラム名(argv[0]) を調べるのは、atq と atrm 
    のみ。それ以外は at コマンドして動く様に修正されている。batch の
    判断が削除されている。

と言うことが分かりました。

で、現在 Plamo Linux 2.0 では、

$ ls -al `which batch`
lrwxrwxrwx   1 root     root            2 May 12 19:40 /usr/bin/batch -> at*

と、シンボリックリンクで設定されています。ですが、(2) の動作により、
batch コマンドのつもりでも、実際は at と同等の動きになります。

で、at コマンドは、時刻を指定する必要がありますので、"Garbled time" 
を表示して終了すると思います。

で、解決策ですが、例えば Slackware 7.0 の batch コマンドは、

$ more `which batch`
#! /bin/sh
prefix=/usr
exec_prefix=${prefix}
exec ${exec_prefix}/bin/at -qb now "$@"

の様に、シェルスクリプトで設定しています。これをそのまんま Plamo
Linux 2.0 でも、batch コマンドとしてやれば、本来?の batch コマンド
として、処理すると思います。

もし、Plamo 1.4.x の batch コマンドと動作が違うので気になる方は、上
のシェルスクリプトを batch コマンドとして動作するようにすれば良いと
思います。

もし、これがすでに知られている事であれば、すみませんです。

ではこれにて。

Follow-Ups
[plamo:06324] Re: Plamo Linux 2.0 のbatch コマンドについて, KOJIMA Mitsuhiro

[検索ページ] [メール一覧]
Plamo ML 公開システム