2013-08-27 109 views
0

某些Windows服務只有在重新啓動計算機後纔會啓動,其中一些安裝軟件後立即啓動。某些服務如何在無需重新啓動的情況下啓動,某些情況下需要重新啓動

例如,sql server(實例名稱)將在安裝後立即啓動。其他一些服務需要重新啓動。重新啓動該計算機後,它將開始出現在services.msc中。它通過使用註冊表完成嗎?我得到了一個與registry of services相關的鏈接,但我無法跟蹤哪個鏈接?它是註冊表還是別的? (設置服務爲手動或自動不同,我的問題是關於首次安裝軟件時添加的服務)

+0

服務無法啓動或服務列表中是否無法顯示? –

回答

0

您不應該直接操作註冊表來創建服務。您應該使用服務控制管理器API來創建並根據需要啓動服務。註冊表值已記錄,但它們仍然是API專用的,並且僅在重新啓動後才生效。使用API​​將立即生效,並且註冊表更改由API完成。

如果您使用Windows Installer,則可以讓安裝程序使用Windows Installer的ServiceInstall和ServiceControl表爲您處理所有這些問題。

某些服務依賴於直到重新啓動後纔可用的資源。一個例子可能是一個鎖定文件,它將在啓動過程中通過Pending Files Rename Operations模式被覆蓋。另一個問題是如果服務依賴於系統環境變量。更新註冊表以設置環境後,您應該向廣播地址發送消息,通知設置更改的所有進程。不幸的是,服務控制管理器忽略這些消息,因此需要重新啓動才能趕上。

其他例子將以個案爲基礎。

相關問題