如果它使用我想要启动的服务将要使用的端口,是否有任何方法可以启动一项服务并强制已在运行的服务停止?
我将要安装 apache 和 mysql,并且希望这些服务能够运行,而不必手动停止使用端口 80/3306 的现有服务(例如现有的 apache/mysql 服务)。
我正在使用 NSIS 来制作我的安装程序。
答案1
如果安装程序发现端口 80 或 3306 正在使用,我将中止安装程序。
我使用了 NSIS 的 TCP 插件,http://nsis.sourceforge.net/TCP_plug-in
我是这样使用的,
...
TCP::CheckPort "80"
Pop $0
StrCmp $0 "free" port_ok
StrCmp $0 "socket_error" socket_error
StrCmp $0 "inuse" socket_inuse
Goto port_ok
socket_inuse:
MessageBox MB_OK "Port 80 is in use by another application."
Abort
socket_error:
MessageBox MB_OK "Error connecting to port 80"
Abort
port_ok:
...