2009-12-14 2 views
1

Я использую startx от Cygwin и хочу настроить мой xinitrc, чтобы на экране не было никаких «волшебных» X-программ, т. Е. Программ, которые приведут к завершению работы X-сервера, если я выйду из них. Я вообще не хочу, чтобы какие-либо программы X запускались на экране вообще; Я просто хочу использовать меню XWin, настроенное из моего .XWinrc.Как заставить мой cygwin .xinitrc ждать выхода X-сервера?

Как правило, из .xinitrc, я сделал бы последнюю строку, запускающую оконный менеджер. Затем я могу выйти из X, покидая оконный менеджер из своего предоставленного интерфейса.

В этом случае, хотя мой оконный менеджер и мой сервер являются фактически одним и тем же процессом, потому что я использую сервер XWin. У меня нет менеджера окон для выполнения. Я начинаю сервер из моего .xserverrc файла:

exec XWin -multiwindow -clipboard -silent-dup-error 

я могу спать в конце моего .xinitrc, в цикле:

while [ 1 -eq 1 ] 
do 
    sleep 10 
done 

Но это кажется безвкусным.

Я могу дождаться дочернего процесса, либо запустив его как последнюю строку в моем .xinitrc, либо запустив его ранее в фоновом режиме и ожидая его явно с помощью «wait {PID}». Но я не могу дождаться процесса XWin.exe, потому что это родительский процесс моего скрипта .xinitrc, а не дочерний процесс.

Я не могу запустить XWin.exe в конце .xinitrc; если я попытаюсь, у меня появляется другой оконный менеджер, который, вероятно, запускается, а XWin не работает в режиме без rootless, а затем я немедленно завершаю работу.

Есть ли более элегантный способ сделать это, чем спать в петле? Есть ли способ запустить XWin из моего .xinitrc и подождать? Есть ли способ сказать сценарию оболочки .xinitrc просто ждать и не выходить без сна, чтобы он продолжал выполнение и ничего не делать до тех пор, пока не исчезнет XWin.exe? Есть ли что-то, что я должен начинать в фоновом режиме в качестве последней строки моего .xinitrc, чтобы дать мне процесс ожидания без запуска X-программы?

ответ

0

Итак, подводя итог из ответа Бен Баллок, ответ на вопрос «Как мне сделать .xinitrc сделать это?» «Не надо!» Никогда не спрашивайте «Как использовать X для выполнения Y?» вопросов. :) Пропустите startx/.xinitrc целиком.

Смежные вопросы