mirror of
https://github.com/safing/portmaster
synced 2025-09-02 18:49:14 +00:00
Add input signal handler
This commit is contained in:
parent
ace9e50f70
commit
51c96959aa
1 changed files with 23 additions and 1 deletions
22
main.go
22
main.go
|
@ -1,6 +1,7 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bufio"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
@ -22,10 +23,12 @@ import (
|
||||||
|
|
||||||
var (
|
var (
|
||||||
printStackOnExit bool
|
printStackOnExit bool
|
||||||
|
enableInputSignals bool
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
flag.BoolVar(&printStackOnExit, "print-stack-on-exit", false, "prints the stack before of shutting down")
|
flag.BoolVar(&printStackOnExit, "print-stack-on-exit", false, "prints the stack before of shutting down")
|
||||||
|
flag.BoolVar(&enableInputSignals, "input-signals", false, "emulate signals using stdin")
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
@ -47,6 +50,9 @@ func main() {
|
||||||
// Shutdown
|
// Shutdown
|
||||||
// catch interrupt for clean shutdown
|
// catch interrupt for clean shutdown
|
||||||
signalCh := make(chan os.Signal)
|
signalCh := make(chan os.Signal)
|
||||||
|
if enableInputSignals {
|
||||||
|
go inputSignals(signalCh)
|
||||||
|
}
|
||||||
signal.Notify(
|
signal.Notify(
|
||||||
signalCh,
|
signalCh,
|
||||||
os.Interrupt,
|
os.Interrupt,
|
||||||
|
@ -99,3 +105,19 @@ func main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func inputSignals(signalCh chan os.Signal) {
|
||||||
|
scanner := bufio.NewScanner(os.Stdin)
|
||||||
|
for scanner.Scan() {
|
||||||
|
switch scanner.Text() {
|
||||||
|
case "SIGHUP":
|
||||||
|
signalCh <- syscall.SIGHUP
|
||||||
|
case "SIGINT":
|
||||||
|
signalCh <- syscall.SIGINT
|
||||||
|
case "SIGQUIT":
|
||||||
|
signalCh <- syscall.SIGQUIT
|
||||||
|
case "SIGTERM":
|
||||||
|
signalCh <- syscall.SIGTERM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue