mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
etcd-agent: SIGQUIT when cleanup
This commit is contained in:
parent
b607b36a6c
commit
bd604a029e
@ -73,12 +73,12 @@ func (a *Agent) start(args ...string) error {
|
||||
}
|
||||
|
||||
// stop stops the existing etcd process the agent started.
|
||||
func (a *Agent) stop() error {
|
||||
func (a *Agent) stopWithSig(sig os.Signal) error {
|
||||
if a.state != stateStarted {
|
||||
return nil
|
||||
}
|
||||
|
||||
err := sigtermAndWait(a.cmd)
|
||||
err := stopWithSig(a.cmd, sig)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -87,8 +87,8 @@ func (a *Agent) stop() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func sigtermAndWait(cmd *exec.Cmd) error {
|
||||
err := cmd.Process.Signal(syscall.SIGTERM)
|
||||
func stopWithSig(cmd *exec.Cmd, sig os.Signal) error {
|
||||
err := cmd.Process.Signal(sig)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -125,7 +125,8 @@ func (a *Agent) restart() error {
|
||||
}
|
||||
|
||||
func (a *Agent) cleanup() error {
|
||||
if err := a.stop(); err != nil {
|
||||
// exit with stackstrace
|
||||
if err := a.stopWithSig(syscall.SIGQUIT); err != nil {
|
||||
return err
|
||||
}
|
||||
a.state = stateUninitialized
|
||||
@ -152,7 +153,7 @@ func (a *Agent) cleanup() error {
|
||||
// terminate stops the exiting etcd process the agent started
|
||||
// and removes the data dir.
|
||||
func (a *Agent) terminate() error {
|
||||
err := a.stop()
|
||||
err := a.stopWithSig(syscall.SIGTERM)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -19,6 +19,7 @@ import (
|
||||
"net"
|
||||
"net/http"
|
||||
"net/rpc"
|
||||
"syscall"
|
||||
|
||||
"github.com/coreos/etcd/tools/functional-tester/etcd-agent/client"
|
||||
)
|
||||
@ -47,7 +48,7 @@ func (a *Agent) RPCStart(args []string, pid *int) error {
|
||||
|
||||
func (a *Agent) RPCStop(args struct{}, reply *struct{}) error {
|
||||
plog.Printf("stop etcd")
|
||||
err := a.stop()
|
||||
err := a.stopWithSig(syscall.SIGTERM)
|
||||
if err != nil {
|
||||
plog.Println("error stopping etcd", err)
|
||||
return err
|
||||
|
Loading…
x
Reference in New Issue
Block a user