Рейтинг:1

Как я могу переместить сообщение терминала Gnome «выход дочернего процесса ...»?

флаг cn

Я только что установил расширение IDE, которое запускает текущую программу в терминале, и у меня есть терминал Gnome, настроенный так, чтобы он оставался открытым при выходе из команды, но когда это происходит, первые две строки закрываются сообщением «Дочерний процесс завершился нормально». со статусом 0". Как я мог его сдвинуть?

Я считаю, что это возможно, отредактировав таблицу стилей Gnome, но я не уверен, с чего начать.

Пример

Вот простой скрипт Python:

#!/usr/bin/env python3

x = input('Введите что-нибудь:')
print('Вы ввели:', х)

Я запускаю его и печатаю что-то:

снимок экрана с надписью «Введите что-нибудь: foobar»

(Моя система на французском языке.)

Затем, как только я нажимаю Enter, скрипт завершает работу и выскакивает сообщение, блокирующее вывод:

снимок экрана, показывающий, что вывод заблокирован сообщением

Я бы предпочел, чтобы сообщение было где-то еще, например, внизу. Вот макет:

макет, показывающий, что вывод разблокирован, поместив сообщение внизу

Вы можете воспроизвести проблему, сохранив скрипт как tmp.py затем работает гном-терминал -- python3 tmp.py. И убедитесь, что у вас правильно настроен терминал Gnome: перейдите к РедактироватьНастройкиКомандаКогда команда выходит и выберите Держите терминал открытым.

Возможные обходные пути

  • Заставьте программу держать терминал открытым, например. input('Нажмите Enter, чтобы закончить...'). -- Я бы предпочел не указывать это на всем, что я пишу.
  • Используйте встроенный терминал IDE. -- Я еще не нашел хороший, и я предпочитаю использовать родной терминал для большинства вещей.
  • Перезапустите программу после ее выхода. -- Если у него есть какие-то побочные эффекты, это может быть плохо, например, если он читает и записывает какие-то файлы.

Связанный

Hi-Angel avatar
флаг es
Следуя вашим шагам, я не могу воспроизвести это на «GNOME Terminal 3.40.3». т.е. Я запускаю ваш скрипт в терминале Gnome, затем ввожу в приглашение «foobar» и нажимаю «Ввод», я не вижу всплывающих окон из терминала. Я предполагаю, что это могло быть исправлено в более поздних версиях Gnome Terminal.
wjandrea avatar
флаг cn
@Hi-Angel Спасибо за наводку! Я использую терминал GNOME 3.28.2. Но где вы видите код выхода? Или он отсутствует?
Hi-Angel avatar
флаг es
Я нигде не вижу кода выхода. Вот скриншот того, что я вижу: https://i.imgur.com/LPR4AYa.png
wjandrea avatar
флаг cn
@ Hi-Angel О, ты запускаешь его из оболочки! Вам нужно будет использовать `exec ./test.py`, чтобы воспроизвести проблему. Расширение, которое я использую, эквивалентно `gnome-terminal -- ./test.py`, которое запускает новый терминал.
Hi-Angel avatar
флаг es
Когда я использую `exec test.py`, Gnome Terminal просто завершает работу сразу после того, как я набираю приглашение «foobar». Итак, всплывающих окон по-прежнему нет, хотя я думаю, это не то, что вы хотели… Я думаю, вам может повезти с правильными ответами, если вы добавите в свой пост точные шаги для воспроизведения, желательно как можно меньше.
wjandrea avatar
флаг cn
@ Hi-Angel Вам нужно настроить терминал Gnome так, чтобы он оставался открытым при выходе из команды. Да, я должен добавить шаги.
vanadium avatar
флаг cn
Проголосуйте, потому что вопрос очень хорошо документирован, но я бы выбрал другой подход, то есть запустил приложение в уже открытом терминале. Скорее всего, потребуется запрос функции, чтобы разработчики сделали это сообщение, не охватывающее существующий вывод терминала или предоставляющее возможность отключить сообщение. В качестве альтернативы найдите другой эмулятор терминала, который работает лучше, чем вы хотели бы.

Ответить или комментировать

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