Я хочу, чтобы возможность планировать команды для запуска в очереди FIFO. Я не хочу, чтобы они запускались в указанное время в будущем, как в случае с командой "at". Я хочу, чтобы они начали работать сейчас, но не одновременно. Следующая запланированная команда в очереди должна быть выполнена только после завершения выполнения первой команды. В качестве альтернативы было бы неплохо, если бы я мог указать максимальное количество команд из очереди, которые могли бы выполняться одновременно; например, если максимальное число одновременных команд равно 2, то только не более 2 команд, запланированных в очереди, будут взяты из очереди способом FIFO для выполнения, при этом следующая команда в оставшейся очереди запускается только тогда, когда одна из в настоящее время 2 выполняющиеся команды заканчиваются.
Я слышал, что Task-Spooler может сделать что-то подобное, но этот пакет, похоже, не очень хорошо поддерживается / протестирован и не входит в стандартные репозитории Ubuntu (Ubuntu - то, что я использую). Если это лучшая альтернатива, дайте мне знать, и я буду использовать диспетчер задач, в противном случае мне будет интересно узнать, каков наилучший, самый простой, проверенный, не содержащий ошибок, канонический способ сделать такое с bash.
ОБНОВИТЬ:
Простые решения, такие как; или && из bash не работают. Мне нужно запланировать эти команды из внешней программы, когда происходит событие. Я просто не хочу, чтобы сотни экземпляров моей команды выполнялись одновременно, поэтому мне нужна очередь. Есть внешняя программа, которая будет запускать события, где я могу запускать свои собственные команды. Я хочу обрабатывать ВСЕ инициируемые события, я не хочу пропустить ни одного события, но я также не хочу, чтобы моя система зависала, поэтому я хочу, чтобы очередь обрабатывала мои команды, запущенные из внешней программы.