diff options
| author | Jakob Unterwurzacher | 2017-01-02 23:29:52 +0100 | 
|---|---|---|
| committer | Jakob Unterwurzacher | 2017-01-02 23:29:52 +0100 | 
| commit | 53aedc378345f7dba5cdd0544b4aa60733505623 (patch) | |
| tree | 5ac3241b3323610adecd648da347829cd63a8bf4 | |
| parent | 9be3d2c214b38db8cc1674c64d2b7fbfaad376bf (diff) | |
main: disconnect from the controlling terminal
This prevents us from getting SIGINT when the user
kills the running script.
| -rw-r--r-- | mount.go | 9 | 
1 files changed, 8 insertions, 1 deletions
| @@ -96,9 +96,9 @@ func doMount(args *argContainer) int {  	// Initialize FUSE server  	srv := initFuseFrontend(masterkey, args, confFile)  	tlog.Info.Println(tlog.ColorGreen + "Filesystem mounted and ready." + tlog.ColorReset) +	var paniclog *os.File  	// We have been forked into the background, as evidenced by the set  	// "notifypid". -	var paniclog *os.File  	if args.notifypid > 0 {  		// Chdir to the root directory so we don't block unmounting the CWD  		os.Chdir("/") @@ -124,6 +124,13 @@ func doMount(args *argContainer) int {  			syscall.Dup2(int(paniclog.Fd()), 1)  			syscall.Dup2(int(paniclog.Fd()), 2)  		} +		// Disconnect from the controlling terminal by creating a new session. +		// This prevents us from getting SIGINT when the user presses Ctrl-C +		// to exit a running script that has called gocryptfs. +		_, err = syscall.Setsid() +		if err != nil { +			tlog.Warn.Printf("Setsid: %v", err) +		}  		// Send SIGUSR1 to our parent  		sendUsr1(args.notifypid)  	} | 
