Я хотел бы автоматически убить команду через определенное время. Я имею в виду интерфейс вроде этого:
% constrain 300 ./foo args
Что бы запустить "./foo" с "args", но автоматически убить его, если он все еще работает через 5 минут.
Возможно, было бы полезно обобщить идею на другие ограничения, такие как автокопирование процесса, если он использует слишком много памяти.
Существуют ли какие-либо существующие инструменты, которые делают это, или кто-нибудь написал такую вещь?
ДОБАВЛЕНО: решение Jonathan - это именно то, что я имел в виду, и он работает как прелесть на linux, но я не могу заставить его работать на Mac OSX. Я избавился от SIGRTMIN, который позволяет компилировать его, но сигнал просто не отправляется дочернему процессу. Кто-нибудь знает, как сделать эту работу на Mac?
[Добавлено: обратите внимание, что обновление доступно от Джонатана, работающего на Mac и в другом месте.]