I am trying to run a simple script which brings up a gnome
terminal on the user’s display. I have created a perl cgi script which
calls a shell script using a system call. If I run the perl cgi script from the
command line, it brings up the gnome terminal correctly. If I try running the
perl cgi script via the Apache web server, I get the following error in /var/log/httpd/error_log: <Date> [error] [client 10.61.8.152] Failed to parse
arguments: Cannot open display: 10.61.8.152:0.0 … The obvious answer would be that I am not setting the DISPLAY
environment variable or that xhost is not set to allow the display. I have
tried setting the DISPLAY variable but am specifying the display parameter as
argument for gnome-terminal in any case. I have used xhost + to ensure it is
not restricting it but I still get the error. The perl cgi script call is made with: my @args=(“/tmp/monitor.sh &”); my $status=system(“@args”); The monitor.sh shell script call for xterm is made with: gnome-terminal –display=10.61.8.152:0.0 –geometry=125x24
–hide-menubar –title=”My title” I am initially testing this out locally on the apache server
system so the display address is that of the Apache server. The server has a
running Xserver and as mentioned, the script works if called from the command
line. I have setup Apache to run as a local user rather than
Apache user. The scripts are both owned by this same user and have permissions
set accordingly. I added a command in the shell script to create a text file. When
run via the Apache server, the file is created with the ownership of the user I
specified confirming that the shell is being run as the expected user. I have also tried making the call using ssh with –X option
from either the cgi-script or the shell script but, despite setting up ssh to
allow passwordless login for the user in question and again, seeing it run OK
from command line, I have problems running via Apache server, getting the
error: <Date> [error] [client 10.61.8.152] ssh: connect to
host <hostname> port 22: Permission denied … If I try calling the gnome terminal directly from the perl
cgi script, I get the same errors stated. I would prefer to start it from the
shell script though since I want to run other commands from the script too and
it would be easier. Apache info: Server version: Apache/2.2.15 (Unix) Server built: Dec 5 2012 04:03:01 Unix info: Redhat 6.4 x86_64 Any help would be greatly appreciated, Thanks, |