Add configuration to modify signal sent to child process when close it

This commit is contained in:
Iwasaki Yudai 2015-10-13 18:26:48 +09:00
parent 95ad63e5ae
commit 888fe870dc
3 changed files with 4 additions and 1 deletions

View File

@ -64,6 +64,7 @@ type Options struct {
ReconnectTime int `hcl:"reconnect_time"`
Once bool `hcl:"once"`
PermitArguments bool `hcl:"permit_arguments"`
CloseSignal int `hcl:"close_signal"`
Preferences HtermPrefernces `hcl:"preferences"`
RawPreferences map[string]interface{} `hcl:"preferences"`
}
@ -88,6 +89,7 @@ var DefaultOptions = Options{
EnableReconnect: false,
ReconnectTime: 10,
Once: false,
CloseSignal: 1, // syscall.SIGHUP
Preferences: HtermPrefernces{},
}

View File

@ -75,7 +75,7 @@ func (context *clientContext) goHandleClient() {
// Even if the PTY has been closed,
// Read(0 in processSend() keeps blocking and the process doen't exit
context.command.Process.Signal(syscall.SIGHUP)
context.command.Process.Signal(syscall.Signal(context.app.options.CloseSignal))
context.command.Wait()
context.connection.Close()

View File

@ -35,6 +35,7 @@ func main() {
flag{"reconnect-time", "", "Time to reconnect"},
flag{"once", "", "Accept only one client and exit on disconnection"},
flag{"permit-arguments", "", "Permit clients to send command line arguments in URL (e.g. http://example.com:8080/?arg=AAA&arg=BBB)"},
flag{"close-signal", "", "Signal sent to the command process when gotty close it (default: SIGHUP)"},
}
mappingHint := map[string]string{