用Delphi开发了一个服务,注册为多实例后,只有一个能正常运行,其余的再运行时会提示错误 1053
服务的 TService 做了处理,按网上的方法,增加了如下代码
private
{ Private declarations }
procedure GetServiceName;
procedure GetServiceDisplayName;
procedure ServiceLoadInfo(Sender : TObject);
......
procedure TMyService.GetServiceDisplayName;
var
_ServiceDisplayName : String;
begin
if not FindCmdLineSwitch('display', _ServiceDisplayName) then
raise Exception.Create('Please specify the service displayname with /display switch');
DisplayName := _ServiceDisplayName;
PostLog(llHint, format('Service-DisplayName [%s]', [DisplayName]));
end;
procedure TMyService.GetServiceName;
var
_ServiceName : String;
begin
if not FindCmdLineSwitch('name', _ServiceName) then
raise Exception.Create('Please specify the service name with /name switch');
Name := _ServiceName;
PostLog(llHint, format('Service-Name [%s]', [Name]));
end;
procedure TMyService.ServiceLoadInfo(Sender : TObject);
begin
GetServiceName;
GetServiceDisplayName;
end;
procedure TMyService.ServiceBeforeInstall(Sender: TService);
begin
PostLog(llEmergency, 'ServiceBeforeInstall');
ServiceLoadInfo(Self);
end;
procedure TMyService.ServiceStart(Sender: TService; var Started: Boolean);
begin
PostLog(llEmergency, 'ServiceStart');
ServiceLoadInfo(Self);
Started := True;
end;
注册操作
然后在服务中注册了三个服务
然后我分别单独启动 服务 01 \ 02 \ 03 均可以正常运行
问题
当我启动 01 ,正常运行后;
再启动 02 或 03 均会如下提示; 真的搞不懂是什么问题了,还望各位指教
备注
三个服务的 Name 、 DisplayName 和路径等参数配置得均不一样;