pg_ctl register [-N servicename] [-U username] [-P password] [-D datadir] [-w][-t seconds] [-o options]pg_ctl unregister [-N servicename]
參數(shù)說(shuō)明如下:
-N servicename:要注冊(cè)的系統(tǒng)服務(wù)的名字。這個(gè)名字將用于服務(wù)名和 顯示名。
-P password:用于啟動(dòng)服務(wù)的密碼
-U:用于啟動(dòng)服務(wù)的用戶(hù)名。如果是域用戶(hù),需要使用“DOMAIN/username”的格式
使用舉例如下:
刪除一個(gè)服務(wù):
pg_ctl unregister -N postgresql-9.2
增加一個(gè)服務(wù):
pg_ctl register -D "C:/Program Files/Postgresql/9.2/data"
PS:下面看下如何將exe注冊(cè)為windows服務(wù),直接從后臺(tái)運(yùn)行
方法一:使用windows自帶的命令sc
使用sc create 方法創(chuàng)建。
如:sc create CaptureScreen binpath= F:/zwmei-project/decklink-learning/OutputBitmap/Debug/OutputBitmap.exe type= own start= auto displayname= Screen_Capture
其中 CaptureScreen為服務(wù)名,可以在系統(tǒng)服務(wù)中找到,(通過(guò)在命令行運(yùn)行services.msc打開(kāi)系統(tǒng)服務(wù))。binpath為你的應(yīng)用程序所在的路徑。 displayname為服務(wù)顯示的名稱(chēng),這個(gè)在注冊(cè)表中可以找到,(通過(guò)在命令行中輸入regedit打開(kāi)注冊(cè)表,在HKEY_LOCAL_MACHINE --
SYSTEM -- CurrentControlSet 下找到你的服務(wù)顯示名)
注意:在sc命令中,=號(hào)前面不能有空格,而=號(hào)后面必須有一個(gè)空格,切記。另外要以管理員的身份打開(kāi)命令行。
這種方法不一定能成功,如果你的exe不符合服務(wù)的規(guī)范,可能會(huì)啟動(dòng)失敗。下面我們討論第二種方法
方法二:在第一種方法失敗的情況下,我們可以使用instsrv.exe和srvany.exe兩個(gè)小工具為我們分憂(yōu)解難
我們可以在官網(wǎng)下載instsrv.exe 和 srvany.exe 然后放到自己的文件夾中,可以將文件夾放入C盤(pán)。下面我們開(kāi)始注冊(cè)服務(wù)。
已管理員的身份運(yùn)行命令行,首先進(jìn)入工具所在的文件夾,如:c:/tools。
執(zhí)行c:/tools/instsrv.exe ServerName c:/tools/srvany.exe
這樣我們就創(chuàng)建了一個(gè)名為ServerName的srvany的服務(wù),那么我們自己的exe該放在哪呢。下面我們打開(kāi)注冊(cè)表
找到ServiceName這個(gè)服務(wù)(位置在HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services下),然后右鍵 新建 項(xiàng),名稱(chēng)為Parameters。單擊該項(xiàng),然后在右邊新建兩個(gè)字符串值。第一個(gè)名為Application,值為:應(yīng)用程序路徑,如:c:/myApp.exe。第二個(gè)名為AppDirectory,值為
:應(yīng)用程序所在目錄,如:c:/。
接下來(lái)我們進(jìn)入系統(tǒng)服務(wù),找到ServiceName這個(gè)服務(wù),雙擊進(jìn)入它的屬性。設(shè)置允許與桌面交互。然后啟動(dòng)服務(wù)。
至此我們完成了將exe注冊(cè)為服務(wù)的過(guò)程。
下面我們分析一下:
instsrv.exe可以創(chuàng)建和刪除服務(wù),然而如果沒(méi)有srvany.exe的參與,創(chuàng)建的服務(wù)可能無(wú)法啟動(dòng)。那么srvany.exe做了些什么呢,啟動(dòng)服務(wù)后我們可以在任務(wù)管理器中找到我們的服務(wù),然后右擊服務(wù),選擇轉(zhuǎn)到進(jìn)程,(如果進(jìn)程中沒(méi)有任何項(xiàng)被選中,則點(diǎn)擊下面的顯示所有用戶(hù)進(jìn)程,
然后重新選擇轉(zhuǎn)至進(jìn)程),我們看到的是srvany.exe,而不是我們自己的exe。原來(lái)我們的exe成為了它的一個(gè)子項(xiàng),由srvany.exe幫助啟動(dòng)。
新聞熱點(diǎn)
疑難解答
圖片精選