Readme for startstop_service
Service functionality added by:
USGS - Golden, CO
(Additional edits to these docs by Stefan Lisowski and Eric Thomas, ISTI)
Setup of startstop_service (Follow these instructions carefully.)
startstop_service is identical to the old startstop_nt, except that it runs as a Windows service. This means that the parameters are all the same - read from startstop_nt.d - but that startstop isn't just executed from a command window or via the scheduler. Note that this version is taken from startstop_nt, so I haven't compiled or tested any of this under Solaris or other systems. I believe it's generally felt, however, that these modifications don't apply to Solaris.
To install startstop_service as a service, do the following:
- Open a command window. Switch to the directory containing the startstop executable (if it's not already in the Windows path).
- Type: startstop_service -install
This will install the service. You should get a message saying that installation was successful.
- Open the Services Control Panel. (It's under Control Panel->Administrative Tools->Services.) You should see something listed as "Earthworm start-stop". Verify that this service is set to run in Automatic mode (meaning it automatically starts after a reboot, without waiting for user intervention.)
- The start-stop service needs to be setup to run using the "Local
System" account, and with the "Allow service to interact with desktop"
option disabled (checkbox cleared). To verify these settings, select
the properties of the start-stop service (double-clicking or selecting
Properties from the toolbar). Select the Log On tab, and verify that
the settings are as just described.
- There's no way I've been able to find that allows environment variables
to be loaded via ew_nt.cmd (or a similar file) before the start-stop service runs. So, any
environment variables required for Earthworm functionality have to be loaded
systemwide before starting the startstop service. To set environment variables,
select the System control panel, select the Advanced tab, and select Environment
Variables. Under the "System variables" window (NOT the "user
variables for XXX User" window), make sure that any environment variables
you'll need are defined here. A typical subset may include:
In addition, make sure \earthworm\bin directory (or whichever directory contains your earthworm binaries) is included somewhere in the "Path" variable. Once these are set, click OK, and reboot the machine.
(Note that setting the Timezone here to UTC may affect how other non-earthworm applications on your machine keep track of and display time.)
- If you didn't have to change any environment variables and reboot, you can now start the startstop service by clicking Start from the Services Control Panel (the triangle "Play" button). If you reboot, the service will start automatically.
Notes on running startstop_service
Apart from running as a Windows service, startstop_service behaves just as startstop_nt. One interesting note is that if you select startstop_service in the Services control panel and click Stop or Restart, then startstop will attempt to shut down all applications attached to its ring via an Earthworm TERMINATE message.The running startstop_service can be difficult to access, especially on versions of Windows newer than Windows XP. The StartstopPipeConsole tool provides a way to interact with the 'startstop' process using a console window. For more information, see the "Earthworm StartstopPipeConsole" documentation.
Old startstop_service notes
If you want to look at the Status of Earthworm, or if you want to Restart an
Earthworm module or Reconfigure Earthworm's modules and rings, and you aren't
logged in as Administrator, you can either use StartstopConsole,
or you can do the following if you know the Administrator password: (Instructions
for Windows XP, but may work on other versions of Windows. See below for Vista.):
- Go to the Windows Start menu, and choose "Run"
- Type the following:
runas /user:YOUR_MACHINE_NAME_HERE\administrator cmd
- This will open up a command window which should be able to connect to the running Earthworm, and thus allow you to type "restart", "reconfigure", "status", "pidpau" or "pau" here.
- To view what's going on in Vista or Windows Server 2008
StartstopConsole won't work in Vista, nor will "runas" give you access to the session zero.
- Beforehand, add 'cmd' as a line in your startstop_nt.d with a NewConsole, and reboot so the service starts this up.
- if you're not at the machine, make a remote desktop connection as whatever user you like
- open a command prompt
- if you're not running as administrator, in the command prompt type:
runas /user:YOUR_MACHINE_NAME_HERE\administrator cmd
enter the admin password
- in the new administrator command prompt that comes up type:
sc config ui0detect start= auto
sc start ui0detect
(if you get a Interactive Services Detection dialog, you can choose "Ask me later)
Once you've done all of the above, you can access session zero. The machine could be rebooted, different users couldlog in, etc. For any user to access startstop_service's session zero:
- in a command prompt window now you can type:
This will switch you to console 0. If you added a cmd prompt to startstop_nt.d, you should see it here now, and can type "status" or whatever.
That's a bit of a handful to type. Since your earthworm bin directory is already in your Windows path,
you can cd to that bin directory and do something like:
echo rundll32 winsta.dll,WinStationSwitchToServicesSession > session0.bat
So now you can just type "session0" at a command prompt to get to the startstop session.
Note that this means that ANY user of the system will be able to get a prompt with administrator privileges. I this essentially the same power one has with startstopconsole which has been part of Earthworm for a while.
(This was all tested with Vista. It _should_ work with Windows Server 2008 too, but hasn't been tested there yet. If you do it successfully or unsuccessfully please let us know.)
With 2003 Server
How to Connect to the Console Session
When you connect to the console session of a Windows Server 2003-based server, no other user has to be already logged on to the console session. Even if no one is logged on to the console, you are logged on just as if you were sitting at the physical console.
To connect from the remote Windows Server 2003-based computer, open a command prompt, and then type the following command:
mstsc -v:servername /F -console
where mstsc is the Remote Desktop connection executable file, -v indicates a server to connect to, /F indicates full screen mode, and -console is the instruction to connect to the console session.