Hi Rory. I think most people currently achieve this kind of thing via the RemoteAdmin interface [1]. However, I don't
personally have any objection to having POSIX handling code in OpenSim if that's useful to people.
The best place for such a thing could be a separate OpenSim.ApplicationPlugins.PosixController package (or similar)
rather than mixing it in with OpenSim.cs.
Things such as #if and #endif do exist in C# [2]. To be honest, I don't think you need to detect Windows as long as it
does compile under Windows - one can include the mono.posix.dll in OpenSim directly if necessary. And some Windows
environments (e.g. Cygwin) do provide POSIX handling so it might work there.
If you want to submit a patch please create an account on Mantis [3] and post it there, putting it into the "Patch
included" state. As I would classify this as a feature, we will need you to sign and submit a contributor's agreement
[4]. Thanks.
[1] http://opensimulator.org/wiki/RemoteAdmin
[2] http://stackoverflow.com/questions/5159657/isolate-mono-specific-code
[3] http://opensimulator.org/mantis.
[4] http://opensimulator.org/wiki/Contributions_Policy
On 07/11/11 15:50, Rory Slegtenhorst wrote:
Dear List,
My very first post in the dev mailing list, as I am going to spend much more
time in my personal OpenSim.
I have written some code quite a while back and wanted to share my thoughts and
start a discussion about it.
*Signal Handling*
Currently, OpenSim services do NOT support POSIX signal handling when POSIX is
available. This support is available
on pretty much any *nix platform including MacOS X. Windows does NOT support
POSIX period.
In Mono, POSIX signal handling can be easily accomplished using the
mono.posix.dll.
I have currently implemented nothing more but the TERM signal, to ensure the
services are properly stopped, instead of
simply killed on the spot. This means that the service actually goes through
the shutdown procedure (if any).
The next goal would be to implement HUP to reload the service.
My current problem, is that the code is just there. No ifdef statements,
nothing.
I simply lack the knowledge in .NET/Mono to exclude the code from an
environment that does not include posix.
Some pointers in the right direction would be much appreciated.
*Discussion*
When creating services, there must be an easy way to start/stop them.
Especially on *nix this comes in handy.
Shoving the word "exit" or "shutdown" into the service cli is just not working
all the time and is error prone.
Adding POSIX signal handling would be considered "standard" in such services.
The fact that MS Windows does not
support POSIX signals is simply disregarded. The equivalent on Windows would be
to have a service binary that runs
the OpenSim services (I think that already exists).
There aren't that many other "standard" solutions to the same problem, and
although signal handling wouldn't work on
ONE platform (ONE being Windows), it is guaranteed to work on ALL others (ALL
being the *nix ones lol).
So to start the discussion, here are some questions:
1. Is there any interest in this code?
With this I mean: would we want POSIX signal handling or will we try to develop
a different way to solve the same problem?
2. If there is any interest, who do I send my patch to?
With kind regards,
Rory Slegtenhorst
rory dot slegtenhorst at gmail dot com
_______________________________________________
Opensim-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/opensim-dev
--
Justin Clark-Casey (justincc)
http://justincc.org/blog
http://twitter.com/justincc
_______________________________________________
Opensim-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/opensim-dev