質問: 大学生です。研究室内のコンピューターを管理してます。 環境は、Vine Linux2.0です。 最近、やたらとフリーズするので、調べてみたら プログラミングを間違って、メモリを食いつぶしてしまのが原因。 プログラムの開発は、日常茶飯事なので、 どうにか、ユーザーが起動するプロセスが使うメモリの 上限値を設定したいのですが、可能でしょうか? quotaは、ディスクの容量制限だけですよね? niceも、プロセスの優先度変えるだけですし。 どなたか、よろしくご教授、お願いします。
回答: 確認します。 問題のプログラムはulimitコマンドを実行したシェルの子プロセスとして実行していますか。 そうでない場合、ulimitの制限を受けません。 それから、データセグメントサイズの上限設定は-dだったような気がします(すみません、未確認です)。 あと、bashの特定バージョンは特定のコンピュータでulimit(の一部)が変更できません。 確認できているのは「bash1.1.4.xでHPのマシンにおいてcoreサイズの変更ができない」などです。 bashのソースを変更すれば大丈夫らしいのですが、詳細は失念しました。 ただ、2.0以上ではこの話は聞きませんのでvine2.0という新しいディストリビューション上のbashなら大丈夫だとは思います。