I know how to prevent running multiple instances of a given app on Windows:
Prevent multiple instances of a given app in .NET?
This code does not work under Linux using mono-develop though. It compiles and runs but it does not work. How can I prevent it under Linux using mono?
This is what I have tried but the code deos not work under linux only on windows.
    static void Main()
    {
        Task.Factory.StartNew(() =>
        {
            try
            {
                var p = new NamedPipeServerStream("SomeGuid", PipeDirection.In, 1);
                Console.WriteLine("Waiting for connection");
                p.WaitForConnection();
            }
            catch
            {
                Console.WriteLine("Error another insance already running");
                Environment.Exit(1); // terminate application
            }
        });
        Thread.Sleep(1000);
        Console.WriteLine("Doing work");
        // Do work....
        Thread.Sleep(10000);            
    }
