Скройте отладочную информацию когда запущенные приложения из командной строки

Большую часть времени выполнение a gtk приложение из командной строки это начинает выводить отладочную информацию к stdout даже при том, что я поместил их в фон.

Пример:

~$ gedit test.html # and ctrl+z to suspend
zsh: suspended  gedit .zshrc
~$ bg
[1]  + continued  gedit .zshrc
~$
# do some editing
(gedit:6208): GtkSourceView-WARNING **: Could not find word to remove in buffer (whoosh), this should not happen!

(gedit:6208): GtkSourceView-WARNING **: Could not find word to remove in buffer (haystack), this should not happen!

Я хочу отметить, что ошибка или предупреждение, изменяется согласно тому, что я делаю в данный момент. GtkSourceView-WARNING показанный здесь один из случаев.

Так или иначе... Вы знаете, возможно ли вообще постараться не получать ту распечатанную информацию?

4
задан 8 April 2014 в 16:05

3 ответа

Еще один способ сделать это - запустить команду как фоновый процесс, а затем отсоединить ее от текущей оболочки. Это будет «скрывать» весь вывод в том смысле, что текущая оболочка больше не заинтересована в процессе. Синтаксис в bash:

gedit test.html &
disown %1

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

0
ответ дан 8 April 2014 в 16:05

Я не знаю, действительно ли это то, что вы ищете, и поможет ли это вам, но:

Поскольку вы говорите, что хотите запустить GTK [ 119] приложения в фоновом режиме, вы можете сделать это:

nohup <applicationname> > /dev/null < /dev/null &

Программа nohup в основном отсоединяет приложение, переданное ему от вашего терминала, позволяя терминалу сеанс до конца, но с приложением все еще можно запустить.

Вы можете закрыть терминал или продолжить его использование (поскольку весь вывод отправляется в / dev / null) без проблем из-за команды &. Хорошее простое объяснение этому можно увидеть в здесь .

0
ответ дан 8 April 2014 в 16:05

Вы можете отправить эти стандартные сообщения вывода и сообщения об ошибке на нулевое устройство , чтобы они не отображались в вашем терминале, например gedit test.html >/dev/null 2>&1

0
ответ дан 8 April 2014 в 16:05

Другие вопросы по тегам:

Похожие вопросы: