Я не верю, что существует какой-либо существующий инструмент, который бы справлялся с тем, что вам нужно, поскольку это не очень просто. Обработка этого процесса происходит там, где это не делается в пользовательском пространстве.
Единственный способ, которым я могу думать о том, что вы делаете, - использовать ulimit для установки максимального количества процессорного времени , что помешало бы пользователю слишком сильно зависнуть. Вы также можете изменить уровень пользователя nice, так что, если конкретный пользователь захлопывает CPU, вы можете снизить его вероятность.