using VNC display(s) to generate images on a webserver
Paul ROBINS
paul.robins "at" st.com
Thu Aug 3 15:15:01 2006
James Weatherall wrote:
>> As I've still not found a solution then I guess I'm going to
>> have to do
>> it with a nasty hack - some kind of log of which servers are
>> running and
>> which haven't been used for a certain time, then kill them
>> off and hope
>> that someone wasn't using it. I was hoping to find a more elegant,
>> automatic solution.
>
> That's not a nasty hack, that's the right way to do it.
>
> Your system should keep track of the servers it's started, and when they
> last had requests run on them, and kill servers when they're no longer
> required. From the sounds of things, you don't even need a concept of a
> server being associated with a particular session - you can just regard them
> as a pool of displays for doing the "capture" process on, and remove &
> restore them from/to the pool before & after processing a request, and add &
> remove servers as the pool becomes empty, or idle for prolonged periods,
> respectively.
>
> Wez @ RealVNC Ltd.
>
Well, it is bit nasty.. or inconvenient at least in the context from
which this is being run, i.e. asynchronous requests from a web server.
You could say I'm being lazy and I suppose you'd be right. I'll have to
a create an Xvnc activity/logging/cleanup daemon to handle all this,
which is a drag (I don't have root access, nor cron, and I'll have to
move all this to other servers). Either that or I call all the
maintenance tasks with each users image request, which sounds like it
could get heavy (race conditions etc). The pool of servers idea sounds
nice and I had thought of something like that to try to maintain say 20
servers running at any one time. However how can I know which one in the
pool isn't busy and hasn't just been bagged by another user? ah, I see,
I'll have to manage that too.
All this would be *so* much easier if I could just launch an Xvnc
server for each user session that quietly went away after n minutes of
inactivity. Oh well, never mind. Thanks anyway.
Paul