diff options
-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) } |