Я намагаюся запускати різні програми Gnome через X11 Forwarding та SSH. Деякі програми спричинить спочатку породження програми "dbus-start". Проблема полягає в тому, що запуск dbus не закривається, коли програма X закривається, і тому вона повинна бути закрита до того, як сеанс SSH можна буде належним чином закрити.
Я припускаю, що проблема полягає в тому, що програми X / Gnome не можуть з'єднатися з основним демоном шини повідомлень і тому повинні запустити власну копію? Як я можу це виправити? Або чого я пропускаю?
Ось приклад. Увімкнено переадресацію X11, все, здається, працює нормально.
[me@host ~]$ gnome-calculator &
[1] 4803
(тут програма gcalctool запускається і відображається на моєму сервері видалення X (Xming))
[me@host ~]$ ps
PID TTY TIME CMD
4706 pts/0 00:00:00 bash
4803 pts/0 00:00:00 gnome-calculator
4807 pts/0 00:00:00 dbus-launch
4870 pts/0 00:00:00 ps
(зараз, після закриття програми gcalctool у віддаленому сеансі)
[me@host ~]$ ps
PID TTY TIME CMD
4706 pts/0 00:00:00 bash
4807 pts/0 00:00:00 dbus-launch
4898 pts/0 00:00:00 ps
Зауважте, що запуск dbus все ще активний. І найгірше, що це запобігає належному закриттю з'єднання SSH, поки воно не буде вбите.
Зауважте, що демон-система повідомлень на всій системі працює, як це видно тут:
[me@host ~]$ ps ax
4696 ? Ssl 0:00 dbus-daemon --system
Що я тут пропускаю? Я ніколи раніше не бачив такої поведінки. Імовірно, я бачив лише програми, які можуть безперешкодно підключатися до демона шини повідомлень? Я шукав відповіді / etc / dbus-1, але не знаю, що шукати.
Заздалегідь дякую за допомогу.
[EDIT]
Гаразд, я розумію, що у мене виникає загальна проблема. Здається, це досить поширена поведінка, але без хорошого рішення. У мене спостерігається зависання SSH, оскільки запуск dbus все ще активний в tty. Але, мабуть, немає хорошого способу спокійно запустити dbus-запуск.
Дивлячись на /etc/X11/xinit/xinitrc.d/00-start-message-bus.sh дає деяку підказку щодо того, що має відбуватися із "звичайним" сеансом X. Це, звичайно, не працює, коли ви просто звертаєтесь до програми X на віддалений сервер X.
Як тимчасове вирішення, я додав це до свого .bash_logout:
# ~/.bash_logout
pkill -u $USER -t `tty | cut -d '/' -f 3,4` dbus-launch
Це дозволить закрити сеанс SSH, але він відчуває себе неприємним. Чи є кращі рішення там? Який правильний спосіб запустити віддалені додатки X11, не втрутившись dbus?