Есть ли способ запустить службу и заставить службу, которая уже работает, остановиться, если она использует порт, который будет использовать служба, которую я хочу запустить?

Я собираюсь установить apache и mysql и хочу, чтобы службы работали без необходимости вручную останавливать существующие службы, использующие порт 80/3306, такие как существующие службы apache/mysql.

Я использую NSIS, чтобы сделать мой установщик.

1 ответ1

1

Я установил мой установщик, если обнаружил, что используются порты 80 или 3306.

Я использовал плагин TCP для NSIS, 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:
...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .