欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

windows下注册和取消pg服务的命令

程序员文章站 2022-06-27 18:50:40
pg_ctl register [-n servicename] [-u username] [-p password] [-d datadir] [-w][-t...
pg_ctl register [-n servicename] [-u username] [-p password] [-d datadir] [-w][-t seconds] [-o options]
pg_ctl unregister [-n servicename]

参数说明如下:

-n servicename:要注册的系统服务的名字。这个名字将用于服务名和 显示名。

-p password:用于启动服务的密码

-u:用于启动服务的用户名。如果是域用户,需要使用“domain\username”的格式

使用举例如下:

删除一个服务:

pg_ctl unregister -n postgresql-9.2

增加一个服务:

pg_ctl register -d "c:\program files\postgresql\9.2\data"

ps:下面看下如何将exe注册为windows服务,直接从后台运行

方法一:使用windows自带的命令sc

使用sc create 方法创建。

如:sc create capturescreen binpath= f:\zwmei-project\decklink-learning\outputbitmap\debug\outputbitmap.exe type= own start= auto displayname= screen_capture

其中 capturescreen为服务名,可以在系统服务中找到,(通过在命令行运行services.msc打开系统服务)。binpath为你的应用程序所在的路径。 displayname为服务显示的名称,这个在注册表中可以找到,(通过在命令行中输入regedit打开注册表,在hkey_local_machine --

system -- currentcontrolset 下找到你的服务显示名)

注意:在sc命令中,=号前面不能有空格,而=号后面必须有一个空格,切记。另外要以管理员的身份打开命令行。

这种方法不一定能成功,如果你的exe不符合服务的规范,可能会启动失败。下面我们讨论第二种方法

方法二:在第一种方法失败的情况下,我们可以使用instsrv.exe和srvany.exe两个小工具为我们分忧解难

我们可以在官网下载instsrv.exe 和 srvany.exe 然后放到自己的文件夹中,可以将文件夹放入c盘。下面我们开始注册服务。

已管理员的身份运行命令行,首先进入工具所在的文件夹,如:c:\tools。

执行c:\tools\instsrv.exe servername c:\tools\srvany.exe

这样我们就创建了一个名为servername的srvany的服务,那么我们自己的exe该放在哪呢。下面我们打开注册表

找到servicename这个服务(位置在hkey_local_machine\system\currentcontrolset\services下),然后右键 新建 项,名称为parameters。单击该项,然后在右边新建两个字符串值。第一个名为application,值为:应用程序路径,如:c:\myapp.exe。第二个名为appdirectory,值为
:应用程序所在目录,如:c:\。

接下来我们进入系统服务,找到servicename这个服务,双击进入它的属性。设置允许与桌面交互。然后启动服务。

至此我们完成了将exe注册为服务的过程。

下面我们分析一下:

instsrv.exe可以创建和删除服务,然而如果没有srvany.exe的参与,创建的服务可能无法启动。那么srvany.exe做了些什么呢,启动服务后我们可以在任务管理器中找到我们的服务,然后右击服务,选择转到进程,(如果进程中没有任何项被选中,则点击下面的显示所有用户进程,

然后重新选择转至进程),我们看到的是srvany.exe,而不是我们自己的exe。原来我们的exe成为了它的一个子项,由srvany.exe帮助启动。