如何在Windows中将任何程序作为后台服务运行

如果您和大多数Windows用户一样,在启动Windows时会运行许多很棒的小实用程序。虽然这对大多数应用程序都很有效,但也有一些甚至可以在用户登录PC之前就开始使用。为此,您需要将该应用程序作为Windows服务运行。

Windows服务是一类特殊的程序,它们被配置为在后台启动和运行,通常没有任何形式的用户界面,也不需要用户登录PC。许多游戏玩家和超级用户都知道它们是你过去为了帮助提高系统速度而禁用的那些东西,尽管现在真的不再需要了。

将应用程序作为服务程序运行的主要优势是,您可以在允许用户登录之前启动程序。对于那些提供重要服务的应用程序来说,这一点尤其重要。当你离开电脑时,这些服务是你想要使用的。

相关:了解和管理Windows服务

Plex就是一个很好的例子,这是一款媒体服务器应用程序,可以将本地内容流式传输到几乎任何你拥有的设备上。当然,你可以让它像正常程序一样放在系统托盘中,但如果电脑因停电或计划的更新而重新启动怎么办?*直到你重新登录电脑,Plex才会变得可用。如果爆米花变冷了,你必须跑到另一个房间启动Plex,这是令人恼火的,如果你出城试图通过互联网流媒体,那就超级恼人了。将Plex设置为服务可以解决这个问题。

在开始之前,您应该了解将应用程序作为服务运行的几个重要注意事项:

该应用程序不会在系统任务栏中放置图标。如果您需要某个应用程序定期可用的界面,则它可能不是最适合作为服务运行。 当您需要更改或更新配置时,您需要停止该服务,将该程序作为常规应用运行,执行所需操作,停止该程序,然后再次启动该服务。 如果程序已经设置为在Windows启动时运行,则需要禁用该设置,这样才不会最终运行两个实例。大多数程序在界面中都有用于切换此设置的选项。其他用户可能会将其自身添加到您的“启动”文件夹中,因此您可以在那里将其删除。

准备好出发了吗?让我们来讨论一下如何设置它。

第一步:安装SrvStart

要将应用程序作为服务运行,您将需要一个小型的第三方实用程序。有几个,但我们最喜欢的是SrvStart。它最初是为Windows NT设计的,几乎可以与从Windows XP到更高版本的任何版本的Windows兼容。

要开始使用,请转到SrvStart下载页面并获取实用程序。下载只包含四个文件(两个DLL和两个EXE文件)。没有安装程序;相反,将这些文件复制到计算机的C:\WINDOWS文件夹中,然后将这些文件复制到主Windows文件夹中,即可“安装”SrvStart。

我们还将假设您已经安装和设置了任何要转换为服务的程序,但是如果您还没有安装和设置,那么现在也是一个很好的时机。

第二步:为新服务创建配置文件

接下来,您将需要创建一个配置文件,以供ServStart读取以创建服务。使用SrvStart可以做很多事情,您可以在文档页面上阅读所有配置选项的完整详细信息。对于本例,我们将只使用两个命令:STARTUP指定要启动的程序,以及SHUTDOWN_METHOD告诉SrvStart在各自的服务停止时如何关闭程序。

启动记事本并使用以下格式创建配置文件。在这里,我们使用的是Plex,但是您可以为您想要作为服务运行的任何程序创建一个文件。启动命令只是指定可执行文件所在的路径。对于shutdown_method命令,我们使用winmessage参数,该参数使SrvStart向该服务打开的任何窗口发送Windows关闭消息。

[Plex] startup="C:\Program Files (x86)\Plex\Plex Media Server\Plex Media Server.exe" shutdown_method=winmessage

显然,根据您要启动的程序调整路径和名称。

将新配置文件保存在您喜欢的任何位置,并将.txt扩展名替换为.ini扩展名。记下文件名,因为我们在下一步中需要它。为便于在命令提示符下键入,我们建议将此文件临时保存在您的C:驱动器上。

第三步:使用命令提示符创建新服务

您的下一步是使用Windows服务控制器(SC)命令根据配置文件中的条件创建新服务。打开命令提示符的方法是右键单击[开始]菜单(或按Windows+X),选择“命令提示符(管理员)”,然后单击“是”以允许其以管理权限运行。

在命令提示符下,使用以下语法创建新服务:

SC CREATE Displayname= "" binpath= "srvstart.exe -c " start=

在该命令中有几点需要注意。首先,每个等号(=)后面都有一个空格。这是必须的。此外,<servicename>值完全由您决定。最后,对于<starttype>值,您需要使用AUTO,以便服务自动从Windows启动。

因此,在我们的Plex示例中,命令将如下所示:

SC CREATE Plex Displayname= "Plex" binpath= "srvstart.exe Plex -c C:PlexService.ini" start= auto

是的,您没看错:我使用的是C:PlexService.ini,而不是C:\PlexService.ini。该命令要求您删除斜杠。

当您运行该命令时,如果一切正常,您应该会收到一条成功消息。

从现在开始,每当Windows启动时,您的新服务都将运行。如果您打开Windows服务界面(只需单击“开始”并键入“服务”),您就可以像查找和配置任何其他服务一样查找和配置新服务。

仅此而已。如果你的应用程序是在Windows上启动的,并且你希望它们不需要用户登录就可以启动,那么将任何应用程序转换为服务都很容易。我们只讨论了创建和运行新服务的基本方法,但是使用SrvStart可以做更多的事情来微调服务的运行方式。如果您想了解更多信息,请务必查看文档。

相关文章