Re: Determine if x is running

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Karl Pearson wrote:
On Tue, February 10, 2009 11:30 am, Rick Stevens wrote:
Karl Pearson wrote:
On Mon, February 9, 2009 3:25 pm, Ray Van Dolson wrote:
On Mon, Feb 09, 2009 at 02:21:24PM -0800, redhat@xxxxxxxxxxxxxx
I'm am writing a script that sets some various security settings on
Redhat Boxes.  I would like to try to determine if a gui may be
on the box the script is run on.  If so, I would echo some
text to stdout that instructs the user that they may required to
manually perform some additional settings manually.  Things having
with screen savers.  Anyway, I thought about the following:

1. use the runlevel command or who -r to see if the system is in
runlevel 5.  This seems flawed since the box may have been started
runlevel 3 and the startx command may have been used. The commands
show runlevel 3.
2. Check if the environment variable DISPLAY is set.  If so, seems
there is a good chance that they are running a gui. (maybe)
DISPLAY is set by the user's login process, so it would be empty for a
cron job.

Is there a better way to check this that anyone can think of?
Would it be sufficient for your needs to check is the X process is

Theoretically, there is probably some way to interact with a running
server directly from a script (even if you're not in control of its
terminal) to determine if it's running.
The easiest way is a small shell script:

	RES=`ps ax | grep -v grep | grep -i xorg`
	if [ $? -eq 0 ]; then
		echo X is running
		echo X is NOT running

(substitute the name of your X server for "xorg" if you're not running
XOrg).  On top of that, $RES will be empty if X isn't running, and will
contain the line from "ps ax" describing it if X is running.

This should work regardless of if the machine starts X by going into run
level 5 and firing up a greeter or startx from some other run level.  It
looks for the instance of the X server itself.

Also, X typically listens on port 6000 locally.
Not unless you TELL it to.  It will listen on local Unix domain ports,
but not TCP/IP.

I suspect I've confused more than helped, but ask away and someone
smarter than me will respond.
The shell snippet I provided

HA! I knew you thought you were smarter than me! I knew you were too, by
the way... :)

Not really, just been doing this stuff for over 30 years.  SOMETHING'S
gotta rub off!
- Rick Stevens, Systems Engineer                      ricks@xxxxxxxx -
- AIM/Skype: therps2        ICQ: 22643734            Yahoo: origrps2 -
-                                                                    -
-           If it's stupid and it ain't stupid!           -

Redhat-install-list mailing list
To Unsubscribe Go To ABOVE URL or send a message to:
Subject: unsubscribe

[Red Hat Kickstart]     [Fedora Users]     [Red Hat General]     [Red Hat Development]     [Samba]     [Kernel]     [Kernel Newbies]     [Hot Springs]     [Yosemite News]

Powered by Linux