If you’re like most Windows users, you have lots of great little utilities that run when you start Windows. While this works great for most apps, there are some that would be nice to start even before a user logs in to the PC. To do this, you’ll need to run the app as a Windows service.
Windows services are a special class of programs that are configured to launch and run in the background, usually without any sort of user interface and without needing a user to log in to the
PC. Many gamers and power users know them as those things you used to disable to help speed up your system, though that’s really not necessary any more.
The primary advantage of running an app as a service is that you can have a program start before a user to log in. That can be particularly important with apps that provide important services you want to be available when you’re away from your computer.
A perfect example of this is Plex, a media server app that can stream local content to just about any device you own. Sure, you could let it sit in the system tray like a normal program, but what if the computer restarts due to a power outage or scheduled updates? Until you log back in on the PC, Plex wouldn’t be available. That’s irritating if you have to run to another room to start Plex back up while your popcorn gets cold, and super irritating if you’re out of town and trying to stream your media over the Internet. Setting up Plex as a Service would solve that problem.
Before getting started, you should be aware of a couple of important caveats to running an app as a service:
- The app will not put an icon in the system tray. If you need the interface available regularly for an app, it may not be best suited to run as a service.
- When you need to make configuration changes or updates, you’ll need to stop the service, run the program as a regular app, do what you need to do, stop the program, and then start the service again.
- If the program is already set up to run when Windows starts, you’ll need to disable that so that you don’t end up with two instances running. Most programs have an option in the interface for toggling this setting. Others may add themselves to your Startup folder, so you can remove them there.
Ready to roll? Let’s talk about how to set it up.
Step One: Install SrvStart
To run an app as a service, you’re going to need a small, third-party utility. There are several out there, but our favorite is SrvStart. It was originally designed for Windows NT, and will work with just about any version of Windows from Windows XP on up.
To get started, head over to the SrvStart download page and grab the utility. The download contains just four files (two DLL and two EXE files). There’s no installer; instead, copy these to your computer’s
C:\Windows
folder these to your main Windows folder to “install” SrvStart.[Plex]startup="C:\Program Files (x86)\Plex\Plex Media Server\Plex Media Server.exe" shutdown_method=winmessage
Obviously, adjust the path and name according to the program you’re launching.
Save the new configuration file wherever you like, and replace the .txt extension with a .ini extension. Make note of the file name, since we’ll need it in the next step. For ease of typing at the Command Prompt, we suggest saving this file temporarily right on your C: drive.
Step Three: Use the Command Prompt to Create the New Service
Your next step is using the Windows Service Controller (SC) command to create the new service based on the criteria in your configuration file. Open Command Prompt by right-clicking the Start menu (or pressing Windows+X), choosing “Command Prompt (Admin)”, and then clicking Yes to allow it to run with administrative privileges.
At the Command Prompt, use the following syntax to create the new service:
SC CREATE <servicename> Displayname= "<servicename>" binpath= "srvstart.exe <servicename> -c <path to srvstart config file>" start= <starttype>
There are a couple of things to note in that command. First, each equal sign (=) has a space after it. That’s required. Also, the
<servicename>
value is entirely up to you. And, finally, for the<starttype>
value, you’ll want to use auto
so that the service starts automatically with Windows.
So in our Plex example, the command would look like this:
SC CREATE Plex Displayname= "Plex" binpath= "srvstart.exe Plex -c C:PlexService.ini" start= auto
Yes, you read that right: I used
requires you to remove the slash.
C:PlexService.ini
instead of C:\PlexService.ini
. The command requires you to remove the slash.
When you run the command, you should receive a SUCCESS message if everything goes well.
From this point on, your new service will run whenever Windows starts. If you open the Windows Services interface (just click Start and type “Services”), you can find and configure the new service just like you would any other.
0 comments:
Post a Comment