Starten eines Dienstes, bei dem Portkonflikte mit dem vorhandenen Dienst auftreten können

699
Michael

Gibt es eine Möglichkeit, einen Dienst zu starten und zu erzwingen, dass ein Dienst, der bereits ausgeführt wird, angehalten wird, wenn er den Port verwendet, den der Dienst, den ich starten möchte, verwenden wird?

Ich werde Apache und MySQL installieren und möchte, dass die Dienste ausgeführt werden, ohne dass vorhandene Dienste, die Port 80/3306 verwenden, wie etwa vorhandene Apache / MySQL-Dienste, manuell angehalten werden müssen.

Ich verwende NSIS, um mein Installationsprogramm zu erstellen.

0

1 Antwort auf die Frage

1
Michael

Ich habe mein Installationsprogramm abgebrochen, wenn festgestellt wurde, dass die Ports 80 oder 3306 verwendet wurden.

Ich habe ein TCP-Plugin für NSIS verwendet, http://nsis.sourceforge.net/TCP_plug-in

Ich habe es auf diese Weise benutzt,

... 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: ... 
+1. Es ist besser, den Dienst abzubrechen und den Benutzer darüber zu informieren, warum er besteht, anstatt vorhandene Dienste zu beenden. Wenn einer das bei einem meiner Server tun würde, hätte ich einen französisch-kanadischen Anfall. Patrick Seymour vor 12 Jahren 0