Почему этот скрипт не открывает параллельные gnome-терминалы на сервере?

Почему я не могу иметь параллельные gnome-terminal на моем сервере, в то время как я могу на своем клиенте.

Вот тест, который иллюстрирует проблему.

#!/bin/bash
# this is the parent script
gnome-terminal --command "./left.sh"
gnome-terminal --command "./right.sh"

#!/bin/bash
echo "this is the left script"
read -p "press any key to close this terminal" key

#!/bin/bash
echo "this is the right script"
read -p "press any key to close this terminal" key

Когда я запускаю это на обычном рабочем столе Ubuntu (Maverick), я вижу два терминала. Когда я запускаю это на отдельном сервере в ферме серверов, второе окно не появляется до после того, как я закрываю первое . Я использую thinvncserver для просмотра рабочего стола сервера.

0
задан 20 April 2012 в 11:55

1 ответ

gnome-terminal работает локально, использует фоновый «фабричный» сервер, который владеет фактическими окнами терминала; Сама команда gnome-terminal завершает работу после обращения к серверу через DBus и указания запустить окно. При удаленном запуске он не может обмениваться данными с заводским сервером, поэтому настраивает само окно и должен продолжать работать до тех пор, пока это окно не будет закрыто.

Если вы поместите команду в фоновом режиме с помощью &, вы получите желаемый эффект независимо от удаленного или локального (или использование --disable-factory, которое приведет к тому, что локальные будут вести себя как удаленные). В этом случае вам, вероятно, понадобится заключительная команда wait в скрипте.

0
ответ дан 20 April 2012 в 11:55

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

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