Google
  Web www.spinics.net

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
wrote:
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
running
on the box the script is run on.  If so, I would echo some
additional
text to stdout that instructs the user that they may required to
manually perform some additional settings manually.  Things having
to
do
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
in
runlevel 3 and the startx command may have been used. The commands
would
show runlevel 3.
2. Check if the environment variable DISPLAY is set.  If so, seems
like
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
running?

Theoretically, there is probably some way to interact with a running
X
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:

	#!/bin/bash
	RES=`ps ax | grep -v grep | grep -i xorg`
	if [ $? -eq 0 ]; then
		echo X is running
	else
		echo X is NOT running
	fi

(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 works...it ain't stupid!           -
----------------------------------------------------------------------

_______________________________________________
Redhat-install-list mailing list
Redhat-install-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/redhat-install-list
To Unsubscribe Go To ABOVE URL or send a message to:
redhat-install-list-request@xxxxxxxxxx
Subject: unsubscribe

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

Powered by Linux