cmd/dockerd: replace deprecated windows.IsAnInteractiveSession()

The `IsAnInteractiveSession` was deprecated, and `IsWindowsService` is marked
as the recommended replacement.

For details, see 280f808b4a

> CL 244958 includes isWindowsService function that determines if a
> process is running as a service. The code of the function is based on
> public .Net implementation.
>
> IsAnInteractiveSession function implements similar functionality, but
> is based on an old Stackoverflow post., which is not as authoritative
> as code written by Microsoft for their official product.
>
> This change copies CL 244958 isWindowsService function into svc package
> and makes it public. The intention is that future users will prefer
> IsWindowsService to IsAnInteractiveSession.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit ffcddc908e)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn 2022-10-11 22:54:40 +02:00
parent a12d359c1a
commit 0c66bc948a
No known key found for this signature in database
GPG key ID: 76698F39D527CE8C

View file

@ -264,7 +264,8 @@ func initService(daemonCli *DaemonCli) (bool, bool, error) {
return false, false, nil
}
interactive, err := svc.IsAnInteractiveSession()
// Check if we're running as a Windows service or interactively.
isService, err := svc.IsWindowsService()
if err != nil {
return false, false, err
}
@ -276,7 +277,7 @@ func initService(daemonCli *DaemonCli) (bool, bool, error) {
}
var log *eventlog.Log
if !interactive {
if isService {
log, err = eventlog.Open(*flServiceName)
if err != nil {
return false, false, err
@ -288,10 +289,10 @@ func initService(daemonCli *DaemonCli) (bool, bool, error) {
service = h
go func() {
if interactive {
err = debug.Run(*flServiceName, h)
} else {
if isService {
err = svc.Run(*flServiceName, h)
} else {
err = debug.Run(*flServiceName, h)
}
h.fromsvc <- err