[Chicago-talk] system command to kill Xwindows session?

Richard Reina richard at rushlogistics.com
Thu Mar 11 05:39:25 PST 2010


Hello Jonathon,

Thanks again for your suggestions.  I was reading up on Xvfb and I not sure I understand what it will and won't do.  What I need is to give a user working in console mode to the ability to view a multi-page tiff file and save it.  This is something I currently do in Xwindows using evince.  Will a Xvfb session allow for that?  If not is the code you included below a good way to go about something like that?

Thanks,

Richard
---- Chicago.pm chatter <chicago-talk at pm.org> wrote:
>
> OK, so here are my thoughts on this issue.
> 
>  "startx" has way too much baggage for an automated process.  Do you
> really want the X server to load, take over the screen and keyboard, and
> wait for default system window manager (like a full GNOME session) to
> load... or do you just want to run some script that requires an X
> server?
> 
> In the first case, sure, use startx.  But isn't the user going to be
> confused when the X server randomly dies without saving his session?
> 
> If you just want an interactive Xserver, though, just run "X :1" or
> whatever, and then set DISPLAY to ":1".  When you don't want X anymore,
> just send it SIGTERM or whatever.
> 
> But in most cases, you don't actually need a real Xserver that touches
> the hardware; you can just use Xvfb and connect your clients to that.
> Then there is no interference with the host machine.
> 
> http://en.wikipedia.org/wiki/Xvfb
> 
> Any time I have ever needed an X server for an automated process, Xvfb
> has been what I've needed.  It works like a real X server, except it
> doesn't touch the real hardware.
> 
> Finally, stop fighting with hacks around system and qx.  If you need to
> start a real background process, use a module like AnyEvent::Subprocess:
> 
>    my $done = AnyEvent->condvar;
>    my $job = AnyEvent::Subprocess->new(
>        code          => [qw/Xvfb :1234/],
>        on_completion => sub { say 'X server exited with status '. $_[0]->exit_status },
>    );
> 
>    my $proc = $job->run;
>    $ENV{DISPLAY} = ':1234';
>    <interact with the X server>;
>    $proc->kill('TERM');
> 
> Much cleaner.
> 
> Regards,
> Jonathan Rockway
> 
> * On Sun, Mar 07 2010, Richard Reina wrote:
> > Linux.  Sorry.
> > ---- Chicago.pm chatter <chicago-talk at pm.org> wrote:
> >>
> >> You didn't telll me if you are on UNIX.
> >>
> >> The "startx" script has to give you the PID, which it currently isn't doing,
> >> and then you have to gather the PID.
> >>
> >> In "startx", assuming Unix
> >>
> >> 	$!/bin/ksh
> >> 	Foobar &
> >> 	echo $!
> >>
> >> I assume you are using the '&' to background "Foobar".  The '$!' gives you
> >> pid of background job, but must be immediately following "Foobar &" command.
> >>
> >> In Perl, you gather the echoed PID by using "qx" instead of system()
> >>
> >> my $thePid = qx/startx/;
> >>
> >> Now you can kill $thePid.
> >>
> >> Got to go.  Goodluck, bye.
> >>
> >> Alexander
> >>
> >> -----Original Message-----
> >> From: chicago-talk-bounces+danel=speakeasy.net at pm.org
> >> [mailto:chicago-talk-bounces+danel=speakeasy.net at pm.org] On Behalf Of
> >> Richard Reina
> >> Sent: Sunday, March 07, 2010 10:06 AM
> >> To: Chicago.pm chatter
> >> Subject: Re: [Chicago-talk]system command to kill Xwindows session?
> >>
> >> I have script that starts an xwindows session with system("startx") I want
> >> it to end as soon as a specific tast is done?
> >>
> >>
> >> ---- Chicago.pm chatter <chicago-talk at pm.org> wrote:
> >> >
> >> > Your question is incoherent; obviously if you are looking for a system
> >> > command, then its not a Perl function.
> >> >
> >> > How did you start the process that opened the window, and are you willing
> >> to
> >> > kill the entire process?
> >> >
> >> > On Unix, if you know the process-id, then try:
> >> >
> >> > 	system("kill TERM $thePid");
> >> >
> >> > Alexander
> >> >
> >> > -----Original Message-----
> >> > From: chicago-talk-bounces+danel=speakeasy.net at pm.org
> >> > [mailto:chicago-talk-bounces+danel=speakeasy.net at pm.org] On Behalf Of
> >> > Richard Reina
> >> > Sent: Sunday, March 07, 2010 9:18 AM
> >> > To: chicago-talk at pm.org
> >> > Subject: [Chicago-talk] system command to kill Xwindows session?
> >> >
> >> > Does anyone know if there is a perl fucntion or a command that can be put
> >> > into system("") that will kill Xwindow and return a script/user to the
> >> > console?
> >> >
> >> > Thanks,
> >> >
> >> > Richard
> >> > _______________________________________________
> >> > Chicago-talk mailing list
> >> > Chicago-talk at pm.org
> >> > http://mail.pm.org/mailman/listinfo/chicago-talk
> >> >
> >> > _______________________________________________
> >> > Chicago-talk mailing list
> >> > Chicago-talk at pm.org
> >> > http://mail.pm.org/mailman/listinfo/chicago-talk
> >> >
> >> _______________________________________________
> >> Chicago-talk mailing list
> >> Chicago-talk at pm.org
> >> http://mail.pm.org/mailman/listinfo/chicago-talk
> >>
> >> _______________________________________________
> >> Chicago-talk mailing list
> >> Chicago-talk at pm.org
> >> http://mail.pm.org/mailman/listinfo/chicago-talk
> >>
> > _______________________________________________
> > Chicago-talk mailing list
> > Chicago-talk at pm.org
> > http://mail.pm.org/mailman/listinfo/chicago-talk
> 
> --
> print just => another => perl => hacker => if $,=$"
> _______________________________________________
> Chicago-talk mailing list
> Chicago-talk at pm.org
> http://mail.pm.org/mailman/listinfo/chicago-talk
> 


More information about the Chicago-talk mailing list