diff options
author | Sebastien Douheret <sebastien.douheret@iot.bzh> | 2019-04-04 23:45:56 +0200 |
---|---|---|
committer | Sebastien Douheret <sebastien.douheret@iot.bzh> | 2019-04-04 23:45:56 +0200 |
commit | 89ea6ebd3671e6ebbf6101525a5416427806f318 (patch) | |
tree | 5db52146365a9c2c439b77485f938cc8c2e3a727 /eows/eows-signal.go | |
parent | ee147062c3bebed83e34bf5ce71019c95f62b96f (diff) |
Fixed package tree and go mod filev0.5.0
Change-Id: I1047094d5b80d0622e2c2ce674979f18207b8c0f
Signed-off-by: Sebastien Douheret <sebastien.douheret@iot.bzh>
Diffstat (limited to 'eows/eows-signal.go')
-rw-r--r-- | eows/eows-signal.go | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/eows/eows-signal.go b/eows/eows-signal.go new file mode 100644 index 0000000..f48279a --- /dev/null +++ b/eows/eows-signal.go @@ -0,0 +1,48 @@ +// +build !windows + +// Package eows is used to Execute commands Over WebSocket +package eows + +import ( + "fmt" + "os" + "syscall" +) + +// Signal sends a signal to the running command / process +func (e *ExecOverWS) Signal(signal string) error { + var sig os.Signal + switch signal { + case "quit", "SIGQUIT": + sig = syscall.SIGQUIT + case "terminated", "SIGTERM": + sig = syscall.SIGTERM + case "interrupt", "SIGINT": + sig = syscall.SIGINT + case "aborted", "SIGABRT": + sig = syscall.SIGABRT + case "continued", "SIGCONT": + sig = syscall.SIGCONT + case "hangup", "SIGHUP": + sig = syscall.SIGHUP + case "killed", "SIGKILL": + sig = syscall.SIGKILL + case "stopped (signal)", "SIGSTOP": + sig = syscall.SIGSTOP + case "stopped", "SIGTSTP": + sig = syscall.SIGTSTP + case "user defined signal 1", "SIGUSR1": + sig = syscall.SIGUSR1 + case "user defined signal 2", "SIGUSR2": + sig = syscall.SIGUSR2 + default: + return fmt.Errorf("Unsupported signal") + } + + if e.proc == nil { + return fmt.Errorf("Cannot retrieve process") + } + + e.logDebug("SEND signal %v to proc %v", sig, e.proc.Pid) + return e.proc.Signal(sig) +} |