Golang processes: Difference between revisions
From wikinotes
Line 40: | Line 40: | ||
proc.Kill() // kill process (-9/SIGKILL) | proc.Kill() // kill process (-9/SIGKILL) | ||
proc.Signal(os.Iterrupt) // send SIGINT to process (looks like you can use any syscall.SIG*) | proc.Signal(os.Iterrupt) // send SIGINT to process (looks like you can use any syscall.SIG*) | ||
proc.Wait() // wait for process to end | |||
syscall.Kill(1234, syscall.SIGINT) // send SIGINT to pid 1234 | syscall.Kill(1234, syscall.SIGINT) // send SIGINT to pid 1234 |
Revision as of 04:15, 20 June 2022
Documentation
os
https://pkg.go.dev/os@go1.18.3
Current Process
import "os" import "os/user" os.Executable() os.Getpid() os.Getppid() os.Getuid() os.Getgid() os.Exit(1) // exit process with exitcode '1' // environment envvars := os.Environ() // ["FOO=bar", "BAR=baz", ...] pwd, err := os.Getwd() // get current pwd/cwd user.Current() // 'will'
Manage Processes
import "syscall" import "os" import "os/signal" proc := os.Process.FindProcess(1234) // find process with pid proc.Kill() // kill process (-9/SIGKILL) proc.Signal(os.Iterrupt) // send SIGINT to process (looks like you can use any syscall.SIG*) proc.Wait() // wait for process to end syscall.Kill(1234, syscall.SIGINT) // send SIGINT to pid 1234
Subprocess
os.Process.StartProcess ProcAttr Process