mount: fix macOS not noticing errors with --daemon

See: https://forum.rclone.org/t/rclone-mount-daemon-exits-successfully-even-when-mount-fails/43146
This commit is contained in:
Nick Craig-Wood 2023-11-28 19:42:00 +00:00
parent 96f8b7c827
commit 9bfbf2a4ae

View File

@ -10,6 +10,7 @@ import (
"runtime" "runtime"
"strings" "strings"
"sync" "sync"
"syscall"
"time" "time"
"github.com/rclone/rclone/cmd" "github.com/rclone/rclone/cmd"
@ -222,6 +223,13 @@ func NewMountCommand(commandName string, hidden bool, mount MountFn) *cobra.Comm
err = WaitMountReady(mnt.MountPoint, Opt.DaemonWait) err = WaitMountReady(mnt.MountPoint, Opt.DaemonWait)
if err != nil { if err != nil {
killDaemon("Daemon timed out") killDaemon("Daemon timed out")
} else {
// Double check daemon is still alive
// on non Linux OSes WaitMountReady is just a no-op
err = daemon.Signal(syscall.Signal(0))
if err != nil {
err = fmt.Errorf("daemon has died: %w", err)
}
} }
atexit.Unregister(handle) atexit.Unregister(handle)
} }