enhance systemd integration

* log level identification
* manual activation with flag
* automatic systemd launch detection
This commit is contained in:
Hekmon 2020-09-18 17:37:54 +02:00 committed by Nick Craig-Wood
parent 3edc9ff0b0
commit c58023a9ba
8 changed files with 59 additions and 19 deletions

View file

@ -11,7 +11,7 @@ import (
"syscall"
"time"
"github.com/okzk/sdnotify"
sysdnotify "github.com/iguanesolutions/go-systemd/v5/notify"
"github.com/pkg/errors"
"github.com/rclone/rclone/cmd"
"github.com/rclone/rclone/fs"
@ -448,13 +448,13 @@ func Mount(VFS *vfs.VFS, mountpoint string, mount MountFn, opt *Options) error {
// Unmount on exit
fnHandle := atexit.Register(func() {
_ = sysdnotify.Stopping()
_ = unmount()
_ = sdnotify.Stopping()
})
defer atexit.Unregister(fnHandle)
// Notify systemd
if err := sdnotify.Ready(); err != nil && err != sdnotify.ErrSdNotifyNoSocket {
if err := sysdnotify.Ready(); err != nil {
return errors.Wrap(err, "failed to notify systemd")
}
@ -479,8 +479,8 @@ waitloop:
}
}
_ = sysdnotify.Stopping()
_ = unmount()
_ = sdnotify.Stopping()
if err != nil {
return errors.Wrap(err, "failed to umount FUSE fs")