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

[plamo:08752] Re: plamo2.1 での最大ファイルサイズは?



山口@富山大学 です。

謎が解決しました。

<200102200933.SAA16505@marduk.kip.iis.toyama-u.ac.jp>において
自分は言いました。

> 私の場合もこれが原因だったらしく、
> 
>   $ ulimit -f unlimited
> 
> すると 1GB を超えて書き込むことができました。
> # カーネルが 2.4.1 なので 2GB の壁も超えて書き込んでくれました

ここは実は root でやっていて、root だと limit が外せるようです。
# 一般ユーザだと NG でした

> ちなみに tcsh (version 6.09) では、
> 
>   % limit filesize [数字]
> 
> で同じことができそうなのですが、[数字] の部分で "unlimited" のような
> 指定はできず、"1048577" (1GB + 1kB) のように 1GB を超える指定をしようと
> すると、
> 
>   limit: filesize: 設定 出来ません. ( 制限)
> 
> とおこられてしまいます。
> 
> また、"1048576m" のような指定をしても反映されずにそのままの制限となって
> しまいます。

こっちも bash の場合と同じで、一般ユーザには制限がかかるようです。
一応ソースの該当する部分を示すと、tcsh-6.10.00/sh.func.c の setlim()
関数で、

---- tcsh-6.10.00/sh.func.c ----
    if (hard)
	rlim.rlim_max = limit;
    else if (limit == RLIM_INFINITY && euid != 0)
	rlim.rlim_cur = rlim.rlim_max;
    else
	rlim.rlim_cur = limit;
---- tcsh-6.10.00/sh.func.c ----

という部分があり、ここで uid をみて分岐しているようです。
# どう分岐するかは詳しく追ってないので説明できませんが

で、root で、

  % limit filesize u  または
  % unlimit filesize

# u で unlimit になるらしい
とすると、limit が外れました。

あとは一般ユーザの制限である 1GB がどこで設定されているか分かれば完全に
解決なのですが...
# limit の取り出しがシステムコールを使っているのでカーネルの方かもしれ
# ません

とりあえずお騒がせしました。
+--------+--------+--------+--------+--------+--------+--------+
富山大学大学院理工学研究科
電子情報工学専攻 知能システム工学第3講座
山口 真悟(Shingo YAMAGUCHI)  shingo@kip.iis.toyama-u.ac.jp



Follow-Ups
[plamo:08753] Re: plamo2.1 での最大ファイルサイズは?, Que
References
[plamo:08748] Re: plamo2.1 での最大ファイルサイズは?, YAMAGUCHI Shingo

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