Intereting Posts
Преобразование цветного вывода в html Вторая батарея либо не заряжается, либо заряжается не обнаружена как настроить гостевые дополнения (драйверы) виртуальной коробки в системе systemd (exherbo) Проверка значений в текстовом файле Как клонировать установку Linux на внешний жесткий диск? Bash автоматически перезагружает (впрыскивает) обновления в исполняемый скрипт при его сохранении: Почему? Любое практическое применение? Не удается заставить rc.local автоматически запускаться Что случилось с файлом, когда я ввел «mv file.txt ../»? Как создать образ initrd на OpenSuSE linux? Fedora 25 Cinnamon застрял в графическом цикле регистрации, tty login успешно Сапоги Fedora 24 для чтения Не удалось выполнить атомарную инициализацию SQLite с ошибкой Subversion на Eclipse Существует ли стандартный способ для получения пути монтирования носителя (например, / media / user, / run / media / user …)? Перечислите строки с наивысшими баллами Установка программного обеспечения с установщиком пакета GUI с использованием разрешения sudo

Предостережения с перенаправлением Stdout / Stderr в файлы?

Я думал о том, что программы, которые начинаются с входа в систему, выводят файлы stdout / stderr в файлы, поэтому я могу проверить stdout / stderr для любого из них, если это необходимо. Я также планирую перезаписать последний файл журнала вместо добавления.

Есть ли какие-либо негативные побочные эффекты для этого? Моя особая забота – ненужная активность жесткого диска.

Если вы не будете осторожны в том, сколько выдает журнал, ваша программа генерирует, вы все равно можете заполнить диск, несмотря на то, что не создаете более одного файла журнала, что вызывает всевозможные проблемы:

  1. Если вы выполняете роль root, вы можете буквально заполнить диск, поскольку это обходит квоты. Некоторые файловые системы также резервируют определенный минимальный объем свободного места для root, чтобы избежать проблем ниже.

  2. Если файловая система заполнена, вы даже не можете создать временный файл на диске. Если файловая система, которую вы заполняете, также находится там, где некоторые из ваших общих временных пространств живут ( /tmp , /usr/tmp , /var/tmp ), которые пытаются использовать это пространство, скорее всего, умрут, если будут запущены или не запустятся, если нет.

  3. Программы, которые выходят из строя, когда это произойдет, не потеряют ядра , если вы настроили систему, чтобы это разрешить. Это может затруднить снижение чувствительности этих программ к условиям с низким дисковым пространством, поскольку это затрудняет обнаружение конкретного пути кода, который разбил программу.

Вы можете запустить logrotate вместе с вашей программой, чтобы уменьшить риск этого.

logrotate не является 100% надежным. Обычно он запускается как задание cron, поэтому, если вы заполняете диск между двумя запусками cron , проблема не будет исправлена ​​до тех пор, пока в следующий раз не logrotate .

stderr уже должен быть зарегистрирован на .xsession-errors , по крайней мере, на некоторых дистрибутивах Linux.

Конечно, я предполагаю, что вы говорите только о графических входах.