summaryrefslogtreecommitdiff
path: root/sendusr1.go
diff options
context:
space:
mode:
Diffstat (limited to 'sendusr1.go')
-rw-r--r--sendusr1.go33
1 files changed, 8 insertions, 25 deletions
diff --git a/sendusr1.go b/sendusr1.go
index c5dbb7c..5de8a6f 100644
--- a/sendusr1.go
+++ b/sendusr1.go
@@ -1,38 +1,21 @@
package main
import (
- "bytes"
"fmt"
- "io/ioutil"
"os"
"syscall"
)
-const (
- wrapperContains = "gocryptfs\000"
-)
-
-// Send USR1 to the parent process. This notifies it that the
-// mounting has completed sucessfully.
-//
-// Checks /proc/$PPID/cmdline to make sure we do not kill an unrelated process.
-func sendUsr1() {
- ppid := os.Getppid()
- fn := fmt.Sprintf("/proc/%d/cmdline", ppid)
- cmdline, err := ioutil.ReadFile(fn)
+// Send signal USR1 to "pid" (usually our parent process). This notifies it
+// that the mounting has completed sucessfully.
+func sendUsr1(pid int) {
+ p, err := os.FindProcess(pid)
if err != nil {
- fmt.Printf("sendUsr1: ReadFile: %v\n", err)
+ fmt.Printf("sendUsr1: FindProcess: %v\n", err)
return
}
- if bytes.Contains(cmdline, []byte(wrapperContains)) {
- p, err := os.FindProcess(ppid)
- if err != nil {
- fmt.Printf("sendUsr1: FindProcess: %v\n", err)
- return
- }
- err = p.Signal(syscall.SIGUSR1)
- if err != nil {
- fmt.Printf("sendUsr1: Signal: %v\n", err)
- }
+ err = p.Signal(syscall.SIGUSR1)
+ if err != nil {
+ fmt.Printf("sendUsr1: Signal: %v\n", err)
}
}