- PR -

コマンドの最大引数サイズについて

1
投稿者投稿内容
gon
会議室デビュー日: 2006/02/03
投稿数: 16
投稿日時: 2006-06-13 09:57
Red hat linux AS 3.0についてお聞きしたいことがあります。
コマンドに最大引数サイズ(プロセスの数が多すぎると機能しない)などはあるのでしょうか?
例)「ps -aux | grep ** | grep ** |grep **」 などでプロセスがあることを確認したいと考えております。
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2006-06-13 13:38
今UNIXマシンが手元になくて確認できませんし、Linuxでは違うかもしれませんが
たいていのUNIXは
MAX_ARGSという定数をproc.h(これは間違ってるかも)に定義してあって、
それを超える引数をプロセスには渡せません。
昔そのサイズが64kのマシンで
cd / ; ls */*/*/*/*/*/*/*
とかやってコケました。

プロセスの数にも制限はありますが、アップされてる内容とは違うでしょう。
スフレ
ぬし
会議室デビュー日: 2005/05/27
投稿数: 281
お住まい・勤務地: 東京
投稿日時: 2006-06-13 15:39
1つのプロセスを exec システムコールで起動する時に ARG_MAX の長さ制限があります。POSIX 準拠であれば ARG_MAX は 4KB 以上です。

それとは別に、シェルが扱えるコマンドラインの長さの限界があります。これはシェルに依存していて、数KBから数十KBだった気がします。

子プロセスを起動できる最大数は sysconf(_SC_CHILD_MAX) で得られます。それとは別に、シェルによって制限があるかもしれません。

gon
会議室デビュー日: 2006/02/03
投稿数: 16
投稿日時: 2006-06-13 18:26
progmanさん、スフレさん返信ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)