mirror of
https://github.com/containers/podman.git
synced 2025-06-24 19:42:56 +08:00
Merge pull request #11342 from baude/machinecleanups
clean up socket and pid files from podman machine
This commit is contained in:
@ -244,6 +244,7 @@ func (v *MachineVM) Start(name string, _ machine.StartOptions) error {
|
|||||||
qemuSocketConn net.Conn
|
qemuSocketConn net.Conn
|
||||||
wait time.Duration = time.Millisecond * 500
|
wait time.Duration = time.Millisecond * 500
|
||||||
)
|
)
|
||||||
|
|
||||||
if err := v.startHostNetworking(); err != nil {
|
if err := v.startHostNetworking(); err != nil {
|
||||||
return errors.Errorf("unable to start host networking: %q", err)
|
return errors.Errorf("unable to start host networking: %q", err)
|
||||||
}
|
}
|
||||||
@ -264,7 +265,11 @@ func (v *MachineVM) Start(name string, _ machine.StartOptions) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
// If the qemusocketpath exists and the vm is off/down, we should rm
|
||||||
|
// it before the dial as to avoid a segv
|
||||||
|
if err := os.Remove(qemuSocketPath); err != nil && !errors.Is(err, os.ErrNotExist) {
|
||||||
|
logrus.Warn(err)
|
||||||
|
}
|
||||||
for i := 0; i < 6; i++ {
|
for i := 0; i < 6; i++ {
|
||||||
qemuSocketConn, err = net.Dial("unix", qemuSocketPath)
|
qemuSocketConn, err = net.Dial("unix", qemuSocketPath)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
@ -352,7 +357,7 @@ func (v *MachineVM) Stop(name string, _ machine.StopOptions) error {
|
|||||||
if _, err = qmpMonitor.Run(input); err != nil {
|
if _, err = qmpMonitor.Run(input); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, pidFile, err := v.getSocketandPid()
|
qemuSocketFile, pidFile, err := v.getSocketandPid()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -373,7 +378,16 @@ func (v *MachineVM) Stop(name string, _ machine.StopOptions) error {
|
|||||||
if p == nil && err != nil {
|
if p == nil && err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return p.Kill()
|
// Kill the process
|
||||||
|
if err := p.Kill(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
// Remove the pidfile
|
||||||
|
if err := os.Remove(pidFile); err != nil && !errors.Is(err, os.ErrNotExist) {
|
||||||
|
logrus.Warn(err)
|
||||||
|
}
|
||||||
|
// Remove socket
|
||||||
|
return os.Remove(qemuSocketFile)
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewQMPMonitor creates the monitor subsection of our vm
|
// NewQMPMonitor creates the monitor subsection of our vm
|
||||||
|
Reference in New Issue
Block a user