Hi,
I've developped a Service that works on Windows. I'm trying to use it on Linux
(Ubuntu 6.10), with the following command:
bash mono-service MyHal.Service.exe
but my service doesn't seem to start. I have no error messages, except:
Jan 20 21:17:47 mylaptop mono: MyHal.Service.exe: Log file already exists:
/tmp/MyHal.Service.exe.lock
(when I re-run the command several times)
Here is my main function:
static class Program
{
static void error (string prefix, string format, params object [] args)
{
Mono.Unix.Native.Syscall.syslog
(Mono.Unix.Native.SyslogLevel.LOG_ERR, String.Format ("{0}: {1}", prefix,
String.Format (format, args)));
}
static void Main()
{
error("Main1", "Begin");
ServiceBase.Run(new ServiceBase[] { new MyHal.Service.Service1() });
error("Main1", "End");
}
}
(in syslog I see only the "Begin" message)
and here is my service:
public class Service1 : ServiceBase
{
private static readonly log4net.ILog _log =
log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public const string MyServiceName = "MyHal";
static void error (string prefix, string format, params object [] args)
{
Mono.Unix.Native.Syscall.syslog
(Mono.Unix.Native.SyslogLevel.LOG_ERR, String.Format ("{0}: {1}", prefix,
String.Format (format, args)));
}
static Service1()
{
error("Service1", "static constructor!!!");
Environment.CurrentDirectory =
Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
}
public Service1()
{
InitializeComponent();
}
private void InitializeComponent()
{
this.ServiceName = MyServiceName;
}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
}
protected override void OnStart(string[] args)
{
try
{
log4net.Config.XmlConfigurator.ConfigureAndWatch(new
FileInfo("log4net.config"));
MyHal.Engine.Core.Instance.Init();
}
catch (Exception exc)
{
_log.Fatal("Exception : " + exc.Message);
throw;
}
}
protected override void OnStop()
{
try
{
MyHal.Engine.Core.Instance.Shutdown();
}
catch (Exception exc)
{
_log.Fatal("Exception : " + exc.Message);
throw;
}
}
}
(the "static constructor!!!" message doesn't appear in syslog)
I am a Linux beginner so I don't know what to do now.
I've also another question: after the call to mono-service, the service is
installed on the machine and will be executed, or do we have to do something
for that?
Thanks in advance
JC
--------------------
http://sourceforge.net/projects/myhal
____________________________________________________________________________________
Expecting? Get great news right away with email Auto-Check.
Try the Yahoo! Mail Beta.
http://advision.webevents.yahoo.com/mailbeta/newmail_tools.html _______________________________________________
Mono-list maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-list