Большую часть времени выполнение 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
показанный здесь один из случаев.
Так или иначе... Вы знаете, возможно ли вообще постараться не получать ту распечатанную информацию?
Еще один способ сделать это - запустить команду как фоновый процесс, а затем отсоединить ее от текущей оболочки. Это будет «скрывать» весь вывод в том смысле, что текущая оболочка больше не заинтересована в процессе. Синтаксис в bash:
gedit test.html &
disown %1
Я часто использую перенаправление вывода, упомянутое в другом ответе, потому что оно очень гибкое. Вы можете выводить в файлы, на устройства, подключать выходы и т. Д. Однако это полезно, если вы не заинтересованы в выводе, вы просто хотите запустить приложение с графическим интерфейсом из оболочки, а затем больше не взаимодействовать с ним.
Я не знаю, действительно ли это то, что вы ищете, и поможет ли это вам, но:
Поскольку вы говорите, что хотите запустить GTK [ 119] приложения в фоновом режиме, вы можете сделать это:
nohup <applicationname> > /dev/null < /dev/null &
Программа nohup в основном отсоединяет приложение, переданное ему от вашего терминала, позволяя терминалу сеанс до конца, но с приложением все еще можно запустить.
Вы можете закрыть терминал или продолжить его использование (поскольку весь вывод отправляется в / dev / null) без проблем из-за команды &
. Хорошее простое объяснение этому можно увидеть в здесь .
Вы можете отправить эти стандартные сообщения вывода и сообщения об ошибке на нулевое устройство , чтобы они не отображались в вашем терминале, например gedit test.html >/dev/null 2>&1