以 windows 服务的方式运行,避免误关闭之类的操作
![]() |
1
fhy1994 350 天前
在 win 上用 nssm 跑过 nginx 、php-cgi 、python 打包的可执行程序
|
![]() |
2
a342191555 350 天前 via iPhone
|
![]() |
3
iminto 350 天前 ![]() 用自带的 sc create 命令就行,也可以用一些第三方的 wrapper,比如 winsw
|
![]() |
4
catcn 350 天前
2 楼的这个是正解,用过。
|
5
chenyi 350 天前
nssm 用过,可以实现
|
6
Rwing 350 天前 ![]() 不考虑一下 C#吗,也可以跨平台,独立文件分发,不用运行时。最主要的,可以很爽的用泛型 🙂
|
![]() |
7
zengming00 350 天前
如果你还玩 nodejs 的话,pm2 是个不错的选择,因为在所有平台都通用
直接一条命令搞定(注意你的程序与参数之间有两个减号) pm2 start 你的程序 -- 传递给你程序的参数 |
8
tsungkang 350 天前
纯粹只考虑 windows 服务的话,可以直接 golang.org/x/sys/windows/svc 一把梭
|
![]() |
9
araraloren 350 天前
@Rwing 很爽的泛型 哈哈。。
|
![]() |
10
anubu 350 天前 ![]() 对比过 nssm 和 winsw,nssm 虽然较久没更新,但更好用。最简单的方法是使用 powershell 命令,两三句命令就能搞定,如果不考虑大量程序管理维护的话,是不错的方法。
|
11
Jirajine 350 天前 via Android
|
![]() |
12
dream4ever 350 天前
@zengming00 PM2 +1,公司买的阿里云服务器装的是 Windows Server 2012,之前解决了 PM2 在注销远程桌面连接后会自动退出的问题后,就彻底省心了,PM2 从几年前用到现在,很方便。
|
![]() |
14
mmtromsb456 350 天前
@anubu #10
powershell 说的是 New-Services 这个 cmdlet? https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/new-service?view=powershell-7.1 |
![]() |
15
PhaSelEza 350 天前 ![]() 如果只是要后台运行,而且程序不需要接受命令行输入的话,可以用:
if len(os.Args) == 1 { exec.Command("cmd.exe", "/C", "start", "/B", os.Args[0], "flag").Run() os.Exit(0) } syscall.NewLazyDLL("kernel32.dll").NewProc("FreeConsole").Call() |
16
0o0O0o0O0o 350 天前 via iPhone
建议用 winsw 专门来做这个事
|
![]() |
17
johnsona 350 天前 via iPhone
nssm
|
![]() |
18
anubu 350 天前
@mmtromsb456 是的,简单够用,无额外依赖。
|
19
g00001 350 天前
|
![]() |
20
emric 350 天前
我写过 bat 就那么几句命令,简单的很。
|
![]() |
21
bigtan 350 天前 via iPhone
@mmtromsb456 一直用 nssm,这个 cmdlet 感觉更优雅
|
22
noroot 350 天前
|
![]() |
24
ch2 350 天前
nssm 是最好的,各种都试过
|
![]() |
25
lqzhgood 349 天前 via Android
Pm2 windows 上服务有坑~
只能说可用 |