<p>I am trying to create a Task Scheduler task to start my SQL Server 2005 instance every morning, because something stops it every night.  This is a temporary solution until I can diagnose the stoppage.</p>

<p>I created a task to run under my admin user, and to start the program, <em>cmd</em> with the arguments <em>/c net start mssqlserver</em>.  When I manually run the command, in a console under my admin user, it runs, but when I try to manually execute the task, it logs the following message, and the service remains stopped:</p>

<p><em>action "C:\Windows\system32\cmd.EXE" with return code 2</em>.</p>

<p>Any suggestions?</p>

Make sure that you really need it. Do a google search for "singleton anti-pattern" to see some arguments against it.
There's nothing inherently wrong with it I suppose, but it's just a mechanism for exposing some global resource/data so make sure that this is the best way. In particular, I've found
dependency injection
(DI) more useful particularly if you are also using unit tests, because DI allows you to use mocked resources for testing purposes.