When I am running some software using sudo
command it showing error like
cannot connect to X server
For example if I run the following command:
$ sudo gedit /etc/profile
I am getting following command
(gedit:6758): WARNING **: Command line `dbus-launch --autolaunch=84b871d735f31ffe014dc9ba00000009 --binary-syntax --close-stderr'
exited with non-zero exit status 1:
Autolaunch error: X11 initialization failed.
Cannot open display:
Run 'gedit --help' to see a full list of available command line options.
Or if I am running super-boot-manager
I am getting following error
buc: cannot connect to X server
Please help.
You need to allow the root user access to the X server:
And point the command to the right
DISPLAY
:Finally the problem is solved. I have just added the line:
at the end of
visudo
.To do that you have to run
it will open the file then add the above line at the end.
Thanks to all, specially @Thor for kind help
Supplementing @Thor's answer:
Run
xhost local:root
beforesudo gedit
. To make this permanent, add the lineto the file ~/.xinitrc 1. Create the file if it doesn't exist.
[1] https://askubuntu.com/a/720120/452398
Actually the code you are running has cv2.imshow() or any other display commands, for remote running of code you have to comment them, and better save for visualization.
set
DISPLAY
andXAUTHORITY
variable environment before running your scrip. for example insystemctl
service file: