利用nssm來把執行檔包成windows服務
寫了一個簡單的靜態httpServer
可是執行時桌面一直卡著執行的畫面...
google了一下 發現一個超好用的工具nssm,簡單來說nssm做的事情就是將你的執行檔註冊成Service
下載 v2.24
註冊服務:
解壓縮以後將nssm.exe丟到你的執行資料夾中,shift+滑鼠右鍵選取在此處開啟命令視窗。
註冊指令
.\nssm.exe install MyHttpService
服務啟動指令(或是重開機)
註冊完並不會自動啟動,需要重開機或是手動啟動(只有第一次需要)
.\nssm.exe start MyHttpService
利用工作管理員檢查服務的執行狀態
移除註冊服務
刪完以後記得要重開機
.\nssm.exe remove MyHttpService
確認是否要刪除此服務
細部的指令說明可以參考官網
超簡易程式碼by golang
package main
import (
"flag"
"fmt"
"net/http"
"path/filepath"
)
func main() {
port := flag.String("port", "80", "port to serve on")
path := flag.String("path", ".", "the directory of static file to host")
flag.Parse()
absPath, err := filepath.Abs(*path)
if err != nil {
fmt.Println("file path formate error!")
return
}
fs := http.FileServer(http.Dir(absPath))
http.Handle("/", http.StripPrefix("", fs))
fmt.Println("Use -help for more information!")
fmt.Printf("Server Port: %v\n", *port)
fmt.Printf("Server Path: %v", absPath)
http.ListenAndServe(":"+*port, nil)
}