Odpowiedzi:
xhost
Komenda potrzebuje serwera Active X, aby uruchomić, można go uruchomić na ekranie logowania, na przykład podczas lightdm
obciążenia. Możesz go włączyć, edytując /etc/lightdm/lightdm.conf
i dodając wiersz:
display-setup-script=/home/user/bin/xhost.sh
przykładowy /etc/lightdm/lightdm.conf
plik:
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
display-setup-script=/home/user/bin/xhost.sh
przykładowy /home/user/bin/xhost.sh
plik:
#!/bin/bash
xhost +
Działa na Ubuntu 12.04.1 LTS i było potrzebne, aby włączyć aplikację Java, która potrzebowała X i była obsługiwana przez Tomcat 6.
To działało dla mnie:
Edytuj ~/.xinitrc
:
export DISPLAY=":0.0"
xhost +
openbox
Uwaga: w mojej konkretnej konfiguracji korzystam tylko z openbox . Zwykle ten plik jest pusty lub brakuje go w Ubuntu. Domyślam się, że możesz usunąć wiersz „openbox” i zadziałałoby, ale nie mam teraz sposobu, aby go przetestować. Jeśli to nie działa, zastąp ostatni wiersz polecenia polecenia menedżera okien.
Miałem ten sam problem z Ubuntu 17.10. Możliwe, że mój system nie został poprawnie skonfigurowany. W każdym razie w moim przypadku dodałem
xhost + SI:localuser:root > /dev/null
na dole mojego ~/.bashrc
pliku i zadziałało. Nie wiem, czy to zagrożenie bezpieczeństwa. Podzielam to, że w przypadku, gdy ktoś jest w tej samej sytuacji i ufam, że dodanie roota do listy użytkowników X-serwera powinno być OK.
Sugeruje się tutaj http://ubuntuhandbook.org/index.php/2017/10/ubuntu-17-10-tip-graphical-apps-doesnt-launch-via-root-sudo-gksu/
Możesz go najpierw przetestować bezpośrednio na terminalu:
$ xhost + SI:localuser:root
$ xhost -
Drugi wiersz zapewnia, że tylko osoby z listy mają dostęp do serwera X. Następnie spróbuj „Edytuj jako administrator”, po kliknięciu pliku prawym przyciskiem myszy lub bezpośrednio uruchom
$ pkexec gedit
Jeśli to nie zadziała, nie ma sensu ustawiać polecenia na stałe w ~ / .bashrc.
Mówiąc ściślej, najpierw wykonałem
$ xhost
aby zobaczyć, którzy użytkownicy mieli dostęp do serwera X. Widziałem, że formatem jest SI:localuser:dominic
gdzie dominic
moja nazwa logowania. Więc użyłem tego samego formatu, SI:localuser:root
aby dodać root
użytkownika.
Oto wariant odpowiedzi @ GeorgeLitos z następującymi zmianami:
/etc/lightdm/lightdm.conf
, ponieważ jest to plik systemowy, który może zostać zastąpiony przez aktualizacje systemu. Zamiast tego użyj katalogu rozszerzeń /etc/lightdm/lightdm.conf.d/
. Oznacza to również, że inne ustawienia nie muszą być tam duplikowane.Wystarczy utworzyć plik (jako root użytkownika) /etc/lightdm/lightdm.conf.d/xhost.conf
z następującymi treściami:
[SeatDefaults]
display-setup-script=xhost +
Działa to na Ubuntu 16.04.5 LTS.
Edytuj plik /etc/rc.local
(za pomocą sudo
) i dodaj polecenie przed ostatnim poleceniem ( exit 0
).