mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-10-13 08:56:20 +08:00
fix: fix issue with docker cmd not close (#9182)
This commit is contained in:
parent
e4b24f51fc
commit
dd1d93e096
2 changed files with 10 additions and 6 deletions
|
@ -933,6 +933,7 @@ func collectLogs(done <-chan struct{}, params dto.StreamLog, messageChan chan<-
|
|||
}
|
||||
|
||||
dockerCmd := exec.Command("docker", cmdArgs...)
|
||||
dockerCmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}
|
||||
|
||||
stdout, err := dockerCmd.StdoutPipe()
|
||||
if err != nil {
|
||||
|
@ -949,7 +950,11 @@ func collectLogs(done <-chan struct{}, params dto.StreamLog, messageChan chan<-
|
|||
|
||||
defer func() {
|
||||
if dockerCmd.Process != nil {
|
||||
if pgid, err := syscall.Getpgid(dockerCmd.Process.Pid); err == nil {
|
||||
_ = syscall.Kill(-pgid, syscall.SIGKILL)
|
||||
}
|
||||
_ = dockerCmd.Process.Kill()
|
||||
_ = dockerCmd.Wait()
|
||||
}
|
||||
}()
|
||||
|
||||
|
@ -960,6 +965,9 @@ func collectLogs(done <-chan struct{}, params dto.StreamLog, messageChan chan<-
|
|||
<-done
|
||||
if !processKilled && dockerCmd.Process != nil {
|
||||
processKilled = true
|
||||
if pgid, err := syscall.Getpgid(dockerCmd.Process.Pid); err == nil {
|
||||
_ = syscall.Kill(-pgid, syscall.SIGKILL)
|
||||
}
|
||||
_ = dockerCmd.Process.Kill()
|
||||
}
|
||||
}()
|
||||
|
|
|
@ -26,12 +26,8 @@
|
|||
<el-icon v-if="loadingIcon(statusItem)" class="is-loading">
|
||||
<Loading />
|
||||
</el-icon>
|
||||
<el-icon size="15" v-else>
|
||||
<svg-icon
|
||||
iconName="p-stop"
|
||||
class="status-icon"
|
||||
v-if="statusItem == 'stopped' || statusItem == 'exited'"
|
||||
></svg-icon>
|
||||
<el-icon size="15" v-else class="status-icon">
|
||||
<svg-icon iconName="p-stop" v-if="statusItem == 'stopped' || statusItem == 'exited'"></svg-icon>
|
||||
<svg-icon iconName="p-start" class="svg-icon" v-if="statusItem == 'running'"></svg-icon>
|
||||
</el-icon>
|
||||
</el-button>
|
||||
|
|
Loading…
Add table
Reference in a new issue