ulimit -t 1
означает, что ограничение установлено на 1 секунду процессорного времени. Если ваша программа с бесконечным циклом использует какой-либо sleep
во внутреннем цикле, то она практически не будет использовать процессорное время. Это означает, что он не будет убит за 1 секунду реального времени. На самом деле это может занять минуты или часы, чтобы использовать его 1-секундное распределение.
Что произойдет, если вы запустите команду вне SCons? Возможно, у вас нет разрешения изменять лимит вообще ...
ulimit -t 1; ./myprogram
Например, он может сказать следующее, если предел уже установлен на 0:
bash: ulimit: cpu time: cannot modify limit: Operation not permitted
Редактировать: похоже, опция -t не работает в Ubuntu 9.04 . Исправление было совершено 05 июня 2009 г., но для обновления может потребоваться некоторое время - оно может быть исправлено только до 9.10.
Как историческая справка, эта проблема больше не существует в Ubuntu 10.04.