Запустить рабочий стол для указанного пользователя из фонового сервиса

333
Galveston01

Я использую Ubuntu 17.10 с установленным Gnome Desktop. В моем rc.localфайле я запускаю Java-программу, которая связывается с TCP-сервером. Как только определенная последовательность будет получена этим приложением сокета, я хотел бы выйти из текущего запущенного рабочего стола и вместо этого запустить новый для полученного пользователя u . В то же время я не хочу у, чтобы ввести свой пароль, именно так, как вам не придется при смене пользователя U, выполнив su uс привилегиями суперпользователя.

Так как мой фоновый сервис запускается из rc.local, он имеет привилегии root.

В моем приложении я хотел бы выполнить набор команд для достижения этой цели, но я понятия не имею, что выполнять. Мой первый подход состоял в том, чтобы убить x, войти в tty2 как u и там запустить startx, но я не смог ни зарегистрировать указанного пользователя в данной оболочке tty, ни выполнить команду в данном tty с помощью команды. Я попытался, openvt -c 2 -f -s -u u -- startxкак мне было предложено сделать в этой теме: Ubuntu входит в определенную оболочку tty как отдельный пользователь, но, похоже, это не работает так, как я ожидал.

Итак, вкратце: как запустить рабочий стол gnome для данного пользователя, rc.localминуя проверку пароля?

Я благодарен за любую помощь. С наилучшими пожеланиями, Галвестон01

0

0 ответов на вопрос

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