首页 > 解决方案 > 无法停止 com.docker.service

问题描述

很奇怪,我真的不想问,因为关于这个问题有很多话题,但我无法在任何帮助下解决它。

我想docker完全停止,所以我能够停止Docker Desktop.exe,但我无法停止调用的服务:com.docker.service它说:

错误:无法终止 PID 为 10584 的进程“com.docker.service”。原因:访问被拒绝..

但是我在我的任务管理器中看到了该服务。我也试过 shell:Shell("taskkill /F /IM com.docker.service /T", 0)但不起作用。

Sub可以停止Docker Desktop.exe,但如果我添加com.docker.service它不会杀死它,所以我无法检查 Docker 是否已启动,因为它会在任务管理器中打开更多文件。

Public Sub stopDocker()
    Try
        cmd.Kill()
    Catch ex As Exception
    End Try
    psi = New ProcessStartInfo("cmd", String.Format("taskkill /F /IM Docker Desktop.exe /T", 0))

    Dim systemencoding As System.Text.Encoding
    System.Text.Encoding.GetEncoding(Globalization.CultureInfo.CurrentUICulture.TextInfo.OEMCodePage)
    With psi
        .UseShellExecute = False
        .RedirectStandardError = True
        .RedirectStandardOutput = True
        .RedirectStandardInput = True
        .CreateNoWindow = True
        .StandardOutputEncoding = systemencoding
        .StandardErrorEncoding = systemencoding
    End With
    cmd = New Process With {.StartInfo = psi, .EnableRaisingEvents = True}
    AddHandler cmd.ErrorDataReceived, AddressOf Async_Data_Received
    AddHandler cmd.OutputDataReceived, AddressOf Async_Data_Received
    cmd.Start()
    cmd.BeginOutputReadLine()
    cmd.BeginErrorReadLine()

End Sub

最后我可以检查是否com.docker.service正在运行:

If Process.GetProcessesByName("com.docker.service").Length <> 0 Then
   MessageBox.Show("docker running")
End if

但是我无法检查是否Docker Desktop.exe正在运行,我认为是因为我不确定是否有空间。

If Process.GetProcessesByName("Docker Desktop.exe").Length <> 0 Then
  MessageBox.Show("docker running")
End if

标签: vb.netdockerservice

解决方案


推荐阅读