6

Я запускаю screen -D -R (с опционально используя имя -S), и он прекрасно работает, но имеет одну проблему - когда данный экран не существует раньше, я получаю уведомление «Новый экран ...», и раздражает Подождите.

Как я могу отключить это конкретное уведомление?

4 ответа4

8

У меня просто была такая же проблема. В последней версии экрана вы можете указать флаг -q для тихого экрана и не показывать его.

Источник показывает

if (rflag && (rflag & 1) == 0 && !quietflag)

так что я не знаю, где Жиль нашел это, или когда это было изменено.

3

К сожалению, это поведение жестко запрограммировано в источнике: этот же тест используется для определения того, следует ли отправлять уведомление «Новый экран ...», и для определения необходимости присоединения к запущенному сеансу. (На экране источника 4.0.3 (rflag && (rflag & 1) == 0) в attacher.c и screen.c - rflag равен 1 для -r плюс 2 для каждого -R .)

Если вы хотите перекомпилировать, патч тривиален: удалите строку, которая отображает сообщение из screen.c .

Вы можете заставить сообщение исчезнуть, набрав что-то. Если вы не хотите вводить ключ, который попадет в приложение в окне экрана, вы можете ввести C-a ` или какой-либо другой несвязанный ключ.

Простой обходной путь заключается в том, чтобы немедленно отключить сеанс экрана (либо с помощью C-a d либо с помощью команды detach в файле screenrc ; -m в командной строке не работает для этого, когда также указан -R ), а затем присоединить к это снова (например, выполнив ту же команду снова).

Действительно хитрый, но полностью автоматизированный обходной путь - включить следующие строки в файл screenrc чтобы пропустить сообщения вначале и повторно включить их через секунду:

msgwait 0
screen -t post_initialization 39 sh -c 'sleep 1; screen -X msgwait 5'

(39 - максимально возможный номер окна, это опция времени компиляции (MAXWIN).)

Обратите внимание , что оба обходные скроет любой screen сообщение выбирает для отображения , когда он начинает, не только бесполезно «Новый экран ...» один.

1

Ну, я довольно поздно на сцене, но у меня была та же проблема. Я решил это, не используя -D -R, а просто -S. Так что $ screen -S myScreenName . Это сразу запускает экран ...

0

Попробуйте добавить их в свой файл .screenrc :

startup_message off
msgwait 1

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

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