シェルスクリプトはユーザーのプロセス数を制御します。

シェルスクリプトはユーザーのプロセス数を制御します。

合計NUMTOT個のプログラムを開始する必要があります(C、Mathematica、ns-2...数学環境はすべて可能です)。問題は、これらのプロセスを実行しているコンピュータがMAX(MAX <NUMTOT)などの実行の最大数だけを許可することです。

次の行を使用して端末でこのプログラムを実行します。

./run.sh -d directory num

ここで、run.shは数学プログラムを呼び出すスクリプト、ディレクトリはプログラムがあるディレクトリ、numは新しい実行回数を表します(integer * num = NUM​​)。 「run.sh」スクリプトは、「ディレクトリ」(プログラム)のコピーを使用して「num」個のディレクトリを作成し、プログラムの「num」インスタンスを起動します。私の場合、Matlabインスタンスでした。

実行中のプロセスの数を自動的に追跡し、「num」が完了して最大数が(MAX-num)に減ったら、合計数がNUMになるまでMatlabの次の「num」シミュレーションを開始するスクリプトが必要です。シミュレーションが完了しました。

スクリプトが 1 つだけ完了したら、次のプログラムを呼び出して MAX 可能なプロセスを維持できれば、より良いでしょう。

実際に実行されているプロセスの数を知るために、次のスクリプトを実行します。

ps axu |grep plopez|grep simulacion|grep MATLAB|awk '{ $2} END{print NR}'

これは現在実行中のMatlabの総数を提供します。

単一のスクリプトでシミュレーション全体をどのように実行できますか?

ベストアンサー1

ユーザーが最大プロセス数を実行できるようにする一般的な方法は、マンページで適切な変更を実行する詳細と例をpam_limits(8)確認することです。limits.conf(5)/etc/security/limits.conf

特に設定したいパラメータは次のとおりですnproc

 nproc
    maximum number of processes

マンページでこのパラメータを使用する例:

       @faculty        soft    nproc           20
       @faculty        hard    nproc           50

おすすめ記事