У меня есть несколько сложный вопрос. Я хочу передать результат от одной команды к другой, но так как я работаю в системе с ограниченной памятью, я хочу убедиться, что канал не будет использовать слишком много этого. Но я не хочу, чтобы он сломался, когда достигнет предела, просто переключитесь на использование диска в качестве временного файла.
Вариант использования заключается в следующем. Я загружаю большой файл, используя curl или wget. Я передаю результат в другую программу (фактически, в именованный канал, но этот именованный канал немедленно передается другой команде). Если что-то идет хорошо, вторая команда может потреблять ввод быстрее, чем curl может вывести его (загрузка медленнее, чем обработка второй команды).
Но иногда что-то идет не так, и второй команде нужно некоторое время, чтобы начать ее использовать. Возможно, в конечном итоге это произойдет, но поскольку для этой второй команды требуется немного оперативной памяти, а у меня ограничен этот ресурс, я хочу переключиться на запись на диск, если канал начинает использовать больше, скажем, 200 МБ оперативной памяти.
Эта вторая команда может даже потребоваться больше времени для запуска, чем время, необходимое для загрузки файла. В этом случае загруженный файл должен быть полностью записан на диск, чтобы второй процесс мог использовать его позже.
Есть ли решение для такой глупой проблемы?