Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save catnipsy/2d021b1e6de79f4c75d12be1bb5bdc76 to your computer and use it in GitHub Desktop.

Select an option

Save catnipsy/2d021b1e6de79f4c75d12be1bb5bdc76 to your computer and use it in GitHub Desktop.
Rclone systemd user service

rclone systemd service

Preparation

This service will use the same remote name you specified when using rclone config create. If you haven't done that yet, do so now.

Next, create the mountpoint for your remote. The service uses the location ~/mnt/<remote> by default.

mkdir ~/mnt/dropbox

The --allow-other option is required in order to work in many desktop environments. This flag must be enabled by adding user_allow_other to /etc/fuse.conf. If you aren't using a desktop environment, such as on a server, this option can be omitted.

Adding the service

Save the rclone@.service file in ~/.config/systemd/user/ Make sure you include the @. This is required to work.

As your normal user, run:

systemctl --user daemon-reload

Using the service

You can now start/enable each remote by using rclone@<remote>

systemctl --user enable --now rclone@dropbox
# User service for Rclone mounting
#
# Place in ~/.config/systemd/user/
# File must include the '@' (ex rclone@.service)
# As your normal user, run
# systemctl --user daemon-reload
# You can now start/enable each remote by using rclone@<remote>
# systemctl --user enable --now rclone@dropbox
[Unit]
Description=rclone: Remote FUSE filesystem for cloud storage config %i
Documentation=man:rclone(1)
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
ExecStartPre=-/usr/bin/mkdir -p %h/mnt/%i
ExecStart= \
/usr/bin/rclone mount \
--config=%h/.config/rclone/rclone.conf \
--vfs-cache-mode writes \
--vfs-cache-max-size 100M \
--log-level INFO \
--log-file /tmp/rclone-%i.log \
--umask 022 \
--allow-other \
%i: %h/mnt/%i
ExecStop=/bin/fusermount -u %h/mnt/%i
[Install]
WantedBy=default.target
@catnipsy
Copy link
Author

https://gist.github.com/kabili207/2cd2d637e5c7617411a666d8d7e97101

[Unit]
Description=rclone: Remote FUSE filesystem for cloud storage config %i
Wants=network-online.target
After=network-online.target

[Service]
Type=notify
ExecStartPre=-/usr/bin/mkdir -p /mnt/rclone/%i
Environment="RCLONE_CONFIG_PASS=1234567890"
ExecStart=/usr/bin/rclone mount
%i: /mnt/rclone/%i
--config=%h/.config/rclone/rclone.jf.conf
--allow-other
--vfs-cache-mode full
--vfs-cache-max-size 5G
--vfs-cache-max-age 6h
--vfs-read-chunk-size 128M
--vfs-read-chunk-size-limit 1G
--buffer-size 64M
--dir-cache-time 72h
--poll-interval 15s
--transfers 8
--multi-thread-cutoff 128M
--multi-thread-streams 4
--log-level ERROR

ExecStop=/bin/fusermount -uz /mnt/rclone/%i

[Install]
WantedBy=default.target

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment