0

ksh スクリプトでサブプロセスの許可を制限しようとしています。ulimit (ハード値またはソフト値) を使用しようとしましたが、サブプロセスは常に制限を破っています (許可された時間よりも長くかかる場合)。

# value for a test
Sc_Timeout=2
Sc_FileOutRun=MyScript.log.Running
Sc_Cmd=./AScriptToRunInSubShell.sh

(
 ulimit -Ht ${Sc_Timeout}
 ulimit -St ${Sc_Timeout}

 time (
  ${Sc_Cmd} >> ${Sc_FileOutRun} 2>&1
  )  >> ${Sc_FileOutRun} 2>&1

  # some other command not relevant for this
 )

結果:

1> ./MyScript.log.Running
ulimit -Ht 2
ulimit -St 2
1>> ./MyScript.log.Running 2>& 1

real    0m11.45s
user    0m3.33s
sys     0m4.12s

システム時間またはユーザー時間で 0m2.00s のようなタイムアウト エラーが発生することが予想されます

コマンドラインから直接テストを行うと、 ulimit Hard はスクリプトではなく時間を効果的に制限しているようです

test/dev のシステムは AIX 6.1 ですが、他のバージョンや Sun および Linux でも動作するはずです

4

1 に答える 1