Windows 服務(wù)程序、窗口界面與遠(yuǎn)程桌面的那點(diǎn)事 |
發(fā)布時(shí)間: 2012/9/9 15:50:04 |
個(gè)人不喜歡服務(wù)端程序,以 Windows 操作系統(tǒng)作為運(yùn)行平臺(tái),但是,很多時(shí)候,迫于環(huán)境現(xiàn)狀,需要讓自己的程序?qū)崿F(xiàn)跨平臺(tái)。 在開發(fā)全新的金山游戲運(yùn)營平臺(tái)時(shí),發(fā)現(xiàn):雖然大部分游戲,服務(wù)端程序運(yùn)行在 Linux 服務(wù)器,但是,仍有例外。幾款最近代理的游戲,服務(wù)端運(yùn)行在 Windows 服務(wù)器上。西山居開發(fā)的游戲,服務(wù)端集群架構(gòu),既有 Windows 服務(wù)器,又有 Linux 服務(wù)器。
-------------------------------------------------------------------------------- 游戲運(yùn)行系統(tǒng)的 Knose 程序,我最初是在 Linux 下開發(fā)的,后來才實(shí)現(xiàn)了兼容 Windows 的跨平臺(tái)版本。
-------------------------------------------------------------------------------- 在 Linux 下,Knose 為“父子進(jìn)程+指令處理線程池+獨(dú)立功能多線程”結(jié)構(gòu);在 Windows 上,將 Knose 父子進(jìn)程結(jié)構(gòu),拆分成了 knose_daemon.exe(Service 服務(wù)程序)和 knose.exe(主程序),由 knose_daemon.exe 啟動(dòng) knose.exe。
-------------------------------------------------------------------------------- 遇到了問題:按照運(yùn)營維護(hù)需求,knose.exe 以及通過它啟動(dòng)的游戲服務(wù)端進(jìn)程,需要有“窗口界面”,顯示在桌面中。而 knose_daemon.exe 是以服務(wù)方式運(yùn)行的,無窗口界面,knose_daemon.exe 啟動(dòng)的 knose.exe,窗口界面沒有彈出來。 為了解決這個(gè)問題,我在 install.bat 中,用了 Windows 的 sc 命令,將 knose_daemon.exe 啟動(dòng)為系統(tǒng)服務(wù),“type= interact type= own”設(shè)置了“允許桌面與服務(wù)交互”。在本機(jī)(Windows XP SP3)測試,knose.exe 的窗口界面以及通過它啟動(dòng)的游戲進(jìn)程窗口界面,都彈出來了。
-------------------------------------------------------------------------------- 于是將程序發(fā)布到 Windows Server 2003 服務(wù)器上,遠(yuǎn)程桌面連接上去,發(fā)現(xiàn) knose.exe 的窗口界面始終彈不出來。 后來,同事發(fā)現(xiàn),原來是“遠(yuǎn)程桌面”惹的禍: 遠(yuǎn)程桌面客戶端 mstsc 有一個(gè) /console 參數(shù),模式等同于本地終端顯示器登錄,/console 不會(huì)去占用非 /console 遠(yuǎn)程桌面,遠(yuǎn)程桌面允許兩個(gè)正常連接和一個(gè)控制臺(tái)/console方式連接,并且正常連接和 /console 連接的桌面操作不能相互看見,只有通過 /console 參數(shù)遠(yuǎn)程桌面連接到 Windows 2003 服務(wù)器,才能夠看到彈出的 knose.exe 窗口界面。 在 Windows XP SP3 以上版本,/console 參數(shù)改名為 /admin,需要用 mstsc /admin 啟動(dòng)遠(yuǎn)程桌面:
連上后,終于能夠看到由 knose_daemon.exe 啟動(dòng)的 knose.exe 程序窗口,以及由 knose.exe 啟動(dòng)的游戲服務(wù)端進(jìn)程窗口了。
本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |