[Mono-devel-list] Mod_mono control panel

Joshua Tauberer tauberer at for.net
Sun Feb 20 09:15:32 EST 2005


Good morning, guys.  Hacking is a nice way to start the day.

After upgrading to 1.0.6/1.1.4, I found that after I "killall mono" to 
restart mod-mono-server, mod_mono no longer restarts mod-mono-server on 
the next request.  I think this is by design, right?

Since I rely on mod_mono to start mod-mono-server, I needed a way to 
restart mod-mono-server without restarting all of Apache.  Rather that 
writing a script to figure out what user/group mod-mono-server is 
running under and what command line arguments to give it, I created a 
really simple control panel within mod_mono.

It creates a new Apache handler for mono-ctrl and displays an HTML 
control panel page for requests it handles.  Following the one link on 
the page causes mod_mono to terminate all mod-mono-servers it spawned 
(exactly as in the normal termination process), and after terminating 
each one and waiting one second it calls fork_mod_mono_server to restart it.

To use it, add:

<Location /mono/>
   SetHandler mono-ctrl
</Location>

And add the appropriate access controls to prevent the world from being 
able to restart your mod-mono-servers.

I'm not sure if there are any memory management issues to be aware of 
with forking the server a second time.  This might be a good place to 
put in some status information, or reporting error messages if there are 
permissions problems with the socket, etc.

The patch is attached.  Comments?

-- 
- Joshua Tauberer

http://taubz.for.net

** Nothing Unreal Exists **


-------------- next part --------------
A non-text attachment was scrubbed...
Name: mod_mono_ctrl_panel.diff
Type: text/x-patch
Size: 4131 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20050220/f73dbf9d/attachment.bin 


More information about the Mono-devel-list mailing list