Мне нужно ограничить время и процессор, полученные внешними приложениями из командной строки, которые я запускаю из процесса python, используя subprocess.call, главным образом потому, что иногда порожденный процесс застревает и выдает CPU на 99%.
nice и ulimit кажутся разумными способами сделать это, но я не уверен, как они будут взаимодействовать с подпроцессом.
- Пределы выглядят примерно так:
- Убейте процесс, если он занимает более 60 секунд.
- Ограничьте его до 20% от процессора
- Я хочу применить ресурс, ограничивающий подпроцесс, а не процесс python, порождающий подпроцессы.
Есть ли способ применить nice и ulimit к процессу subprocess.call? Существуют ли лучшие альтернативы на основе python?
Это находится в системе linux (ubuntu).