4

В bash set +m должен отключить режим монитора. Я хотел бы, чтобы это было поведение по умолчанию, и поместите строку в .bashrc

Файл .bashrc читается (рядом с ним стоит строка echo "hello" ), но уведомления о прекращенных заданиях по-прежнему отображаются. Это почему?

1 ответ1

4

Поскольку уведомления о заданиях привязаны к интерактивному режиму, а не к режиму мониторинга. Описание того, что делает set -m , вводит в заблуждение. Он имеет ряд эффектов, таких как принудительное выполнение конвейеров в своей собственной группе процессов, и вызывает срабатывание прерываний в CHLD для каждого фонового процесса. Это на самом деле ничего не делает, чтобы повлиять на то, работает ли "контроль работы". Вы по-прежнему можете использовать все команды, связанные с заданиями, и обращаться к заданиям с использованием спецификаций заданий даже с помощью set +m , если ваша ОС поддерживает управление заданиями.

То же относится и к кш. Я не знаю ни одного способа отключить или скрыть уведомления о работе. Если Bash запускается в интерактивном режиме, вы всегда будете видеть их, даже если впоследствии вы set +i (что AFAICT не оказывает влияния после запуска). Я считаю, что set +b делает вещи немного более терпимыми. Если вы пишете сценарий, который использует управление заданиями для сложной мультиобработки, вам все равно не придется беспокоиться об этом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .