summaryrefslogtreecommitdiff
path: root/src/pkg/os/exec_posix.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/pkg/os/exec_posix.go')
-rw-r--r--src/pkg/os/exec_posix.go25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/pkg/os/exec_posix.go b/src/pkg/os/exec_posix.go
index 9102dc0a4..bf992ef42 100644
--- a/src/pkg/os/exec_posix.go
+++ b/src/pkg/os/exec_posix.go
@@ -4,7 +4,25 @@
package os
-import "syscall"
+import (
+ "runtime"
+ "syscall"
+)
+
+// A Signal can represent any operating system signal.
+type Signal interface {
+ String() string
+}
+
+type UnixSignal int32
+
+func (sig UnixSignal) String() string {
+ s := runtime.Signame(int32(sig))
+ if len(s) > 0 {
+ return s
+ }
+ return "UnixSignal"
+}
// StartProcess starts a new process with the program, arguments and attributes
// specified by name, argv and attr.
@@ -34,6 +52,11 @@ func StartProcess(name string, argv []string, attr *ProcAttr) (p *Process, err E
return newProcess(pid, h), nil
}
+// Kill causes the Process to exit immediately.
+func (p *Process) Kill() Error {
+ return p.Signal(SIGKILL)
+}
+
// Exec replaces the current process with an execution of the
// named binary, with arguments argv and environment envv.
// If successful, Exec never returns. If it fails, it returns an Error.