set +b
Режим по умолчанию. В этом режиме каждый раз, когда bash
собирается напечатать свое приглашение, он сначала проверяет, были ли какие-либо фоновые задания остановлены или завершены, и, если это так, печатает уведомительные сообщения перед отображением приглашения.
set +b
никогда не портит изображение, но у него есть свои проблемы. В частности, предположим, что вы тестируете программу с графическим интерфейсом, исходный код которой вы редактируете в отдельном окне редактора. (Предположим, что это написано на интерпретируемом языке. )Возможно, у вас есть окно терминала, в котором вы продолжаете вводить одну и ту же команду, myprogram &
. Каждый раз, когда вы вносите изменения в программу и хотите перезапустить ее, вы закрываете ее текущий экземпляр и повторяете эту команду в окне оболочки. Теперь bash
запустит новый экземпляр программы перед печатью уведомления о том, что старая завершена -, и поскольку печать этого уведомления является моментом, когда происходит сброс распределения номеров заданий, это также означает, что ваши номера заданий будут увеличиваться без ограничений, если вы намеренно не нажмете клавишу «Возврат» в момент, когда фоновое задание не выполняется. В конце концов, один экземпляр вашей программы зависнет, и вам придется набирать kill %134
вместо kill %1
, как вы предпочитаете.
set -b
В этом режиме, когда любое фоновое задание останавливается или завершается, bash
получает сигнал SIGCHLD, и его обработчик сигнала немедленно отображает уведомляющее сообщение, -даже если bash
в настоящее время находится в середине ожидания переднего плана. процесс для завершения.
set -b
не знает о состоянии терминала, поэтому его уведомления могут испортить отображение любого -полноэкранного приложения, которое вы можете запускать (, например, текстового редактора или MUA ). В частности, этот режим не может даже осмысленно взаимодействовать с собственной командой bash
редактирования строки -! Попробуйте запустить sleep 1 &
в этом режиме, а затем сразу начните вводить командную строку.Вы обнаружите, что когда уведомление распечатывается, дисплей остается в несколько неочевидном -состоянии.
Источник всего этого нашел здесь .
Последний раз, когда у меня была эта проблема на моем Debian 11 (яблочко )несколько дней назад, Я обнаружил, что моя папка /home/user/.cache быстро заполнялась (монтированием видео в KDEnLive ), и, как оказалось, мой раздел /home заполнялся вверх.
На всякий случай, если вы не проверили, запустить:
(sudo) df -h
Стоит проверить.