How can I detect I'm running under mono-service2? (in C#/.NET 3.5, running mono 2.6.7 on ubuntu 11)
Environment.UserInteractive is the proper solution but, unfortunately, it is currently not implemented in Mono. I may take a look on it someday and upgrade this answer ;)
However just to detect you can probably use hacky solution around this one: name given to
m parameter will become the friendly name of application domain of that service (at least according to the current source code of
mono-service). So, when run with this parameter you should be able to test:
AppDomain.CurrentDomain.FriendlyName == "NameGivenToMParameter"
If it is true, then your application is apparently ran with mono-service (with given parameter). Print the value of application domain name to file to see if it really works (it does for me) ;) I do not know if it really resolves your problem.