github.com/rclone/rclone@v1.66.1-0.20240517100346-7b89735ae726/docs/content/install.md (about)

     1  ---
     2  title: "Install"
     3  description: "Rclone Installation"
     4  ---
     5  
     6  # Install
     7  
     8  Rclone is a Go program and comes as a single binary file.
     9  
    10  ## Quickstart
    11  
    12    * [Download](/downloads/) the relevant binary.
    13    * Extract the `rclone` executable, `rclone.exe` on Windows, from the archive.
    14    * Run `rclone config` to setup. See [rclone config docs](/docs/) for more details.
    15    * Optionally configure [automatic execution](#autostart).
    16  
    17  See below for some expanded Linux / macOS / Windows instructions.
    18  
    19  See the [usage](/docs/) docs for how to use rclone, or
    20  run `rclone -h`.
    21  
    22  Already installed rclone can be easily updated to the latest version
    23  using the [rclone selfupdate](/commands/rclone_selfupdate/) command.
    24  
    25  See [the release signing docs](/release_signing/) for how to verify
    26  signatures on the release.
    27  
    28  ## Script installation
    29  
    30  To install rclone on Linux/macOS/BSD systems, run:
    31  
    32      sudo -v ; curl https://rclone.org/install.sh | sudo bash
    33  
    34  For beta installation, run:
    35  
    36      sudo -v ; curl https://rclone.org/install.sh | sudo bash -s beta
    37  
    38  Note that this script checks the version of rclone installed first and
    39  won't re-download if not needed.
    40  
    41  ## Linux installation {#linux}
    42  
    43  ### Precompiled binary {#linux-precompiled}
    44  
    45  Fetch and unpack
    46  
    47      curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
    48      unzip rclone-current-linux-amd64.zip
    49      cd rclone-*-linux-amd64
    50  
    51  Copy binary file
    52  
    53      sudo cp rclone /usr/bin/
    54      sudo chown root:root /usr/bin/rclone
    55      sudo chmod 755 /usr/bin/rclone
    56  
    57  Install manpage
    58  
    59      sudo mkdir -p /usr/local/share/man/man1
    60      sudo cp rclone.1 /usr/local/share/man/man1/
    61      sudo mandb
    62  
    63  Run `rclone config` to setup. See [rclone config docs](/docs/) for more details.
    64  
    65      rclone config
    66  
    67  ## macOS installation {#macos}
    68  
    69  ### Installation with brew {#macos-brew}
    70  
    71      brew install rclone
    72  
    73  NOTE: This version of rclone will not support `mount` any more (see
    74  [#5373](https://github.com/rclone/rclone/issues/5373)). If mounting is wanted
    75  on macOS, either install a precompiled binary or enable the relevant option
    76  when [installing from source](#source).
    77  
    78  Note that this is a third party installer not controlled by the rclone
    79  developers so it may be out of date. Its current version is as below.
    80  
    81  [![Homebrew package](https://repology.org/badge/version-for-repo/homebrew/rclone.svg)](https://repology.org/project/rclone/versions)
    82  
    83  ### Installation with MacPorts {#macos-macports}
    84  
    85  On macOS, rclone can also be installed via [MacPorts](https://www.macports.org):
    86  
    87      sudo port install rclone
    88  
    89  Note that this is a third party installer not controlled by the rclone
    90  developers so it may be out of date. Its current version is as below.
    91  
    92  [![MacPorts port](https://repology.org/badge/version-for-repo/macports/rclone.svg)](https://repology.org/project/rclone/versions)
    93  
    94  More information [here](https://ports.macports.org/port/rclone/).
    95  
    96  ### Precompiled binary, using curl {#macos-precompiled}
    97  
    98  To avoid problems with macOS gatekeeper enforcing the binary to be signed and
    99  notarized it is enough to download with `curl`.
   100  
   101  Download the latest version of rclone.
   102  
   103      cd && curl -O https://downloads.rclone.org/rclone-current-osx-amd64.zip
   104  
   105  Unzip the download and cd to the extracted folder.
   106  
   107      unzip -a rclone-current-osx-amd64.zip && cd rclone-*-osx-amd64
   108  
   109  Move rclone to your $PATH. You will be prompted for your password.
   110  
   111      sudo mkdir -p /usr/local/bin
   112      sudo mv rclone /usr/local/bin/
   113  
   114  (the `mkdir` command is safe to run, even if the directory already exists).
   115  
   116  Remove the leftover files.
   117  
   118      cd .. && rm -rf rclone-*-osx-amd64 rclone-current-osx-amd64.zip
   119  
   120  Run `rclone config` to setup. See [rclone config docs](/docs/) for more details.
   121  
   122      rclone config
   123  
   124  ### Precompiled binary, using a web browser  {#macos-precompiled-web}
   125  
   126  When downloading a binary with a web browser, the browser will set the macOS
   127  gatekeeper quarantine attribute. Starting from Catalina, when attempting to run
   128  `rclone`, a pop-up will appear saying:
   129  
   130      "rclone" cannot be opened because the developer cannot be verified.
   131      macOS cannot verify that this app is free from malware.
   132  
   133  The simplest fix is to run
   134  
   135      xattr -d com.apple.quarantine rclone
   136  
   137  ## Windows installation {#windows}
   138  
   139  ### Precompiled binary {#windows-precompiled}
   140  
   141  Fetch the correct binary for your processor type by clicking on these
   142  links. If not sure, use the first link.
   143  
   144  - [Intel/AMD - 64 Bit](https://downloads.rclone.org/rclone-current-windows-amd64.zip)
   145  - [Intel/AMD - 32 Bit](https://downloads.rclone.org/rclone-current-windows-386.zip)
   146  - [ARM - 64 Bit](https://downloads.rclone.org/rclone-current-windows-arm64.zip)
   147  
   148  Open this file in the Explorer and extract `rclone.exe`. Rclone is a
   149  portable executable so you can place it wherever is convenient.
   150  
   151  Open a CMD window (or powershell) and run the binary. Note that rclone
   152  does not launch a GUI by default, it runs in the CMD Window.
   153  
   154  - Run `rclone.exe config` to setup. See [rclone config docs](/docs/) for more details.
   155  - Optionally configure [automatic execution](#autostart).
   156  
   157  If you are planning to use the [rclone mount](/commands/rclone_mount/)
   158  feature then you will need to install the third party utility
   159  [WinFsp](https://winfsp.dev/) also.
   160  
   161  ### Windows package manager (Winget) {#windows-chocolatey}
   162  
   163  [Winget](https://learn.microsoft.com/en-us/windows/package-manager/) comes pre-installed with the latest versions of Windows. If not, update the [App Installer](https://www.microsoft.com/p/app-installer/9nblggh4nns1) package from the Microsoft store.
   164  
   165  To install rclone
   166  ```
   167  winget install Rclone.Rclone
   168  ```
   169  To uninstall rclone
   170  ```
   171  winget uninstall Rclone.Rclone --force
   172  ```
   173  
   174  ### Chocolatey package manager {#windows-chocolatey}
   175  
   176  Make sure you have [Choco](https://chocolatey.org/) installed
   177  
   178  ```
   179  choco search rclone
   180  choco install rclone
   181  ```
   182  
   183  This will install rclone on your Windows machine. If you are planning
   184  to use [rclone mount](/commands/rclone_mount/) then
   185  
   186  ```
   187  choco install winfsp
   188  ```
   189  
   190  will install that too.
   191  
   192  Note that this is a third party installer not controlled by the rclone
   193  developers so it may be out of date. Its current version is as below.
   194  
   195  [![Chocolatey package](https://repology.org/badge/version-for-repo/chocolatey/rclone.svg)](https://repology.org/project/rclone/versions)
   196  
   197  ### Scoop package manager {#windows-scoop}
   198  
   199  Make sure you have [Scoop](https://scoop.sh/) installed
   200  
   201  ```
   202  scoop install rclone
   203  ```
   204  
   205  Note that this is a third party installer not controlled by the rclone
   206  developers so it may be out of date. Its current version is as below.
   207  
   208  [![Scoop package](https://repology.org/badge/version-for-repo/scoop/rclone.svg)](https://repology.org/project/rclone/versions)
   209  
   210  ## Package manager installation {#package-manager}
   211  
   212  Many Linux, Windows, macOS and other OS distributions package and
   213  distribute rclone.
   214  
   215  The distributed versions of rclone are often quite out of date and for
   216  this reason we recommend one of the other installation methods if
   217  possible.
   218  
   219  You can get an idea of how up to date or not your OS distribution's
   220  package is here.
   221  
   222  [![Packaging status](https://repology.org/badge/vertical-allrepos/rclone.svg?columns=3)](https://repology.org/project/rclone/versions)
   223  
   224  ## Docker installation {#docker}
   225  
   226  The rclone developers maintain a [docker image for rclone](https://hub.docker.com/r/rclone/rclone).
   227  
   228  These images are built as part of the release process based on a
   229  minimal Alpine Linux.
   230  
   231  The `:latest` tag will always point to the latest stable release.  You
   232  can use the `:beta` tag to get the latest build from master.  You can
   233  also use version tags, e.g. `:1.49.1`, `:1.49` or `:1`.
   234  
   235  ```
   236  $ docker pull rclone/rclone:latest
   237  latest: Pulling from rclone/rclone
   238  Digest: sha256:0e0ced72671989bb837fea8e88578b3fc48371aa45d209663683e24cfdaa0e11
   239  ...
   240  $ docker run --rm rclone/rclone:latest version
   241  rclone v1.49.1
   242  - os/arch: linux/amd64
   243  - go version: go1.12.9
   244  ```
   245  
   246  There are a few command line options to consider when starting an rclone Docker container
   247  from the rclone image.
   248  
   249  - You need to mount the host rclone config dir at `/config/rclone` into the Docker
   250    container. Due to the fact that rclone updates tokens inside its config file, and that
   251    the update process involves a file rename, you need to mount the whole host rclone
   252    config dir, not just the single host rclone config file.
   253  
   254  - You need to mount a host data dir at `/data` into the Docker container.
   255  
   256  - By default, the rclone binary inside a Docker container runs with UID=0 (root).
   257    As a result, all files created in a run will have UID=0. If your config and data files
   258    reside on the host with a non-root UID:GID, you need to pass these on the container
   259    start command line.
   260  
   261  - If you want to access the RC interface (either via the API or the Web UI), it is
   262    required to set the `--rc-addr` to `:5572` in order to connect to it from outside
   263    the container. An explanation about why this is necessary is present [here](https://web.archive.org/web/20200808071950/https://pythonspeed.com/articles/docker-connection-refused/).
   264      * NOTE: Users running this container with the docker network set to `host` should
   265       probably set it to listen to localhost only, with `127.0.0.1:5572` as the value for
   266        `--rc-addr`
   267  
   268  - It is possible to use `rclone mount` inside a userspace Docker container, and expose
   269    the resulting fuse mount to the host. The exact `docker run` options to do that might
   270    vary slightly between hosts. See, e.g. the discussion in this
   271    [thread](https://github.com/moby/moby/issues/9448).
   272  
   273    You also need to mount the host `/etc/passwd` and `/etc/group` for fuse to work inside
   274    the container.
   275  
   276  Here are some commands tested on an Ubuntu 18.04.3 host:
   277  
   278  ```
   279  # config on host at ~/.config/rclone/rclone.conf
   280  # data on host at ~/data
   281  
   282  # add a remote interactively
   283  docker run --rm -it \
   284      --volume ~/.config/rclone:/config/rclone \
   285      --user $(id -u):$(id -g) \
   286      rclone/rclone \
   287      config
   288  
   289  # make sure the config is ok by listing the remotes
   290  docker run --rm \
   291      --volume ~/.config/rclone:/config/rclone \
   292      --user $(id -u):$(id -g) \
   293      rclone/rclone \
   294      listremotes
   295  
   296  # perform mount inside Docker container, expose result to host
   297  mkdir -p ~/data/mount
   298  docker run --rm \
   299      --volume ~/.config/rclone:/config/rclone \
   300      --volume ~/data:/data:shared \
   301      --user $(id -u):$(id -g) \
   302      --volume /etc/passwd:/etc/passwd:ro --volume /etc/group:/etc/group:ro \
   303      --device /dev/fuse --cap-add SYS_ADMIN --security-opt apparmor:unconfined \
   304      rclone/rclone \
   305      mount dropbox:Photos /data/mount &
   306  ls ~/data/mount
   307  kill %1
   308  ```
   309  
   310  ## Snap installation {#snap}
   311  
   312  [![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/rclone)
   313  
   314  Make sure you have [Snapd installed](https://snapcraft.io/docs/installing-snapd)
   315  
   316  ```bash
   317  $ sudo snap install rclone
   318  ```
   319  Due to the strict confinement of Snap, rclone snap cannot access real /home/$USER/.config/rclone directory, default config path is as below.
   320  
   321  - Default config directory:
   322      - /home/$USER/snap/rclone/current/.config/rclone
   323  
   324  Note: Due to the strict confinement of Snap, `rclone mount` feature is `not` supported.
   325  
   326  If mounting is wanted, either install a precompiled binary or enable the relevant option when [installing from source](#source).
   327  
   328  Note that this is controlled by [community maintainer](https://github.com/boukendesho/rclone-snap) not the rclone developers so it may be out of date. Its current version is as below.
   329  
   330  [![rclone](https://snapcraft.io/rclone/badge.svg)](https://snapcraft.io/rclone)
   331  
   332  
   333  ## Source installation {#source}
   334  
   335  Make sure you have git and [Go](https://golang.org/) installed.
   336  Go version 1.18 or newer is required, the latest release is recommended.
   337  You can get it from your package manager, or download it from
   338  [golang.org/dl](https://golang.org/dl/). Then you can run the following:
   339  
   340  ```
   341  git clone https://github.com/rclone/rclone.git
   342  cd rclone
   343  go build
   344  ```
   345  
   346  This will check out the rclone source in subfolder rclone, which you can later
   347  modify and send pull requests with. Then it will build the rclone executable
   348  in the same folder. As an initial check you can now run `./rclone version`
   349  (`.\rclone version` on Windows).
   350  
   351  Note that on macOS and Windows the [mount](https://rclone.org/commands/rclone_mount/)
   352  command will not be available unless you specify an additional build tag `cmount`.
   353  
   354  ```
   355  go build -tags cmount
   356  ```
   357  
   358  This assumes you have a GCC compatible C compiler (GCC or Clang) in your PATH,
   359  as it uses [cgo](https://pkg.go.dev/cmd/cgo). But on Windows, the
   360  [cgofuse](https://github.com/winfsp/cgofuse) library that the cmount
   361  implementation is based on, also supports building
   362  [without cgo](https://github.com/golang/go/wiki/WindowsDLLs), i.e. by setting
   363  environment variable CGO_ENABLED to value 0 (static linking). This is how the
   364  official Windows release of rclone is being built, starting with version 1.59.
   365  It is still possible to build with cgo on Windows as well, by using the MinGW
   366  port of GCC, e.g. by installing it in a [MSYS2](https://www.msys2.org)
   367  distribution (make sure you install it in the classic mingw64 subsystem, the
   368  ucrt64 version is not compatible).
   369  
   370  Additionally, to build with mount on Windows, you must install the third party
   371  utility [WinFsp](https://winfsp.dev/), with the "Developer" feature selected.
   372  If building with cgo, you must also set environment variable CPATH pointing to
   373  the fuse include directory within the WinFsp installation
   374  (normally `C:\Program Files (x86)\WinFsp\inc\fuse`).
   375  
   376  You may add arguments `-ldflags -s` to omit symbol table and debug information,
   377  making the executable file smaller, and `-trimpath` to remove references to
   378  local file system paths. The official rclone releases are built with both of these.
   379  
   380  ```
   381  go build -trimpath -ldflags -s -tags cmount
   382  ```
   383  
   384  If you want to customize the version string, as reported by
   385  the `rclone version` command, you can set one of the variables `fs.Version`,
   386  `fs.VersionTag` (to keep default suffix but customize the number),
   387  or `fs.VersionSuffix` (to keep default number but customize the suffix).
   388  This can be done from the build command, by adding to the `-ldflags`
   389  argument value as shown below.
   390  
   391  ```
   392  go build -trimpath -ldflags "-s -X github.com/rclone/rclone/fs.Version=v9.9.9-test" -tags cmount
   393  ```
   394  
   395  On Windows, the official executables also have the version information,
   396  as well as a file icon, embedded as binary resources. To get that with your
   397  own build you need to run the following command **before** the build command.
   398  It generates a Windows resource system object file, with extension .syso, e.g.
   399  `resource_windows_amd64.syso`, that will be automatically picked up by
   400  future build commands.
   401  
   402  ```
   403  go run bin/resource_windows.go
   404  ```
   405  
   406  The above command will generate a resource file containing version information
   407  based on the fs.Version variable in source at the time you run the command,
   408  which means if the value of this variable changes you need to re-run the
   409  command for it to be reflected in the version information. Also, if you
   410  override this version variable in the build command as described above, you
   411  need to do that also when generating the resource file, or else it will still
   412  use the value from the source.
   413  
   414  ```
   415  go run bin/resource_windows.go -version v9.9.9-test
   416  ```
   417  
   418  Instead of executing the `go build` command directly, you can run it via the
   419  Makefile. The default target changes the version suffix from "-DEV" to "-beta"
   420  followed by additional commit details, embeds version information binary resources
   421  on Windows, and copies the resulting rclone executable into your GOPATH bin folder
   422  (`$(go env GOPATH)/bin`, which corresponds to `~/go/bin/rclone` by default).
   423  
   424  ```
   425  make
   426  ```
   427  
   428  To include mount command on macOS and Windows with Makefile build:
   429  
   430  ```
   431  make GOTAGS=cmount
   432  ```
   433  
   434  There are other make targets that can be used for more advanced builds,
   435  such as cross-compiling for all supported os/architectures, and packaging
   436  results into release artifacts.
   437  See [Makefile](https://github.com/rclone/rclone/blob/master/Makefile)
   438  and [cross-compile.go](https://github.com/rclone/rclone/blob/master/bin/cross-compile.go)
   439  for details.
   440  
   441  Another alternative method for source installation is to download the source,
   442  build and install rclone - all in one operation, as a regular Go package.
   443  The source will be stored it in the Go module cache, and the resulting
   444  executable will be in your GOPATH bin folder (`$(go env GOPATH)/bin`,
   445  which corresponds to `~/go/bin/rclone` by default).
   446  
   447  ```
   448  go install github.com/rclone/rclone@latest
   449  ```
   450  
   451  ## Ansible installation {#ansible}
   452  
   453  This can be done with [Stefan Weichinger's ansible
   454  role](https://github.com/stefangweichinger/ansible-rclone).
   455  
   456  Instructions
   457  
   458    1. `git clone https://github.com/stefangweichinger/ansible-rclone.git` into your local roles-directory
   459    2. add the role to the hosts you want rclone installed to:
   460  
   461  ```
   462      - hosts: rclone-hosts
   463        roles:
   464            - rclone
   465  ```
   466  
   467  ## Portable installation {#portable}
   468  
   469  As mentioned [above](https://rclone.org/install/#quickstart), rclone is single
   470  executable (`rclone`, or `rclone.exe` on Windows) that you can download as a
   471  zip archive and extract into a location of your choosing. When executing different
   472  commands, it may create files in different locations, such as a configuration file
   473  and various temporary files. By default the locations for these are according to
   474  your operating system, e.g. configuration file in your user profile directory and
   475  temporary files in the standard temporary directory, but you can customize all of
   476  them, e.g. to make a completely self-contained, portable installation.
   477  
   478  Run the [config paths](/commands/rclone_config_paths/) command to see
   479  the locations that rclone will use.
   480  
   481  To override them set the corresponding options (as command-line arguments, or as
   482  [environment variables](https://rclone.org/docs/#environment-variables)):
   483    - [--config](https://rclone.org/docs/#config-config-file)
   484    - [--cache-dir](https://rclone.org/docs/#cache-dir-dir)
   485    - [--temp-dir](https://rclone.org/docs/#temp-dir-dir)
   486  
   487  ## Autostart
   488  
   489  After installing and configuring rclone, as described above, you are ready to use rclone
   490  as an interactive command line utility. If your goal is to perform *periodic* operations,
   491  such as a regular [sync](https://rclone.org/commands/rclone_sync/), you will probably want
   492  to configure your rclone command in your operating system's scheduler. If you need to
   493  expose *service*-like features, such as [remote control](https://rclone.org/rc/),
   494  [GUI](https://rclone.org/gui/), [serve](https://rclone.org/commands/rclone_serve/)
   495  or [mount](https://rclone.org/commands/rclone_mount/), you will often want an rclone
   496  command always running in the background, and configuring it to run in a service infrastructure
   497  may be a better option. Below are some alternatives on how to achieve this on
   498  different operating systems.
   499  
   500  NOTE: Before setting up autorun it is highly recommended that you have tested your command
   501  manually from a Command Prompt first.
   502  
   503  ### Autostart on Windows
   504  
   505  The most relevant alternatives for autostart on Windows are:
   506  - Run at user log on using the Startup folder
   507  - Run at user log on, at system startup or at schedule using Task Scheduler
   508  - Run at system startup using Windows service
   509  
   510  #### Running in background
   511  
   512  Rclone is a console application, so if not starting from an existing Command Prompt,
   513  e.g. when starting rclone.exe from a shortcut, it will open a Command Prompt window.
   514  When configuring rclone to run from task scheduler and windows service you are able
   515  to set it to run hidden in background. From rclone version 1.54 you can also make it
   516  run hidden from anywhere by adding option `--no-console` (it may still flash briefly
   517  when the program starts). Since rclone normally writes information and any error
   518  messages to the console, you must redirect this to a file to be able to see it.
   519  Rclone has a built-in option `--log-file` for that.
   520  
   521  Example command to run a sync in background:
   522  ```
   523  c:\rclone\rclone.exe sync c:\files remote:/files --no-console --log-file c:\rclone\logs\sync_files.txt
   524  ```
   525  
   526  #### User account
   527  
   528  As mentioned in the [mount](https://rclone.org/commands/rclone_mount/) documentation,
   529  mounted drives created as Administrator are not visible to other accounts, not even the
   530  account that was elevated as Administrator. By running the mount command as the
   531  built-in `SYSTEM` user account, it will create drives accessible for everyone on
   532  the system. Both scheduled task and Windows service can be used to achieve this.
   533  
   534  NOTE: Remember that when rclone runs as the `SYSTEM` user, the user profile
   535  that it sees will not be yours. This means that if you normally run rclone with
   536  configuration file in the default location, to be able to use the same configuration
   537  when running as the system user you must explicitly tell rclone where to find
   538  it with the [`--config`](https://rclone.org/docs/#config-config-file) option,
   539  or else it will look in the system users profile path (`C:\Windows\System32\config\systemprofile`).
   540  To test your command manually from a Command Prompt, you can run it with
   541  the [PsExec](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec)
   542  utility from Microsoft's Sysinternals suite, which takes option `-s` to
   543  execute commands as the `SYSTEM` user.
   544  
   545  #### Start from Startup folder
   546  
   547  To quickly execute an rclone command you can simply create a standard
   548  Windows Explorer shortcut for the complete rclone command you want to run. If you
   549  store this shortcut in the special "Startup" start-menu folder, Windows will
   550  automatically run it at login. To open this folder in Windows Explorer,
   551  enter path `%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup`,
   552  or `C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp` if you want
   553  the command to start for *every* user that logs in.
   554  
   555  This is the easiest approach to autostarting of rclone, but it offers no
   556  functionality to set it to run as different user, or to set conditions or
   557  actions on certain events. Setting up a scheduled task as described below
   558  will often give you better results.
   559  
   560  #### Start from Task Scheduler
   561  
   562  Task Scheduler is an administrative tool built into Windows, and it can be used to
   563  configure rclone to be started automatically in a highly configurable way, e.g.
   564  periodically on a schedule, on user log on, or at system startup. It can run
   565  be configured to run as the current user, or for a mount command that needs to
   566  be available to all users it can run as the `SYSTEM` user.
   567  For technical information, see
   568  https://docs.microsoft.com/windows/win32/taskschd/task-scheduler-start-page.
   569  
   570  #### Run as service
   571  
   572  For running rclone at system startup, you can create a Windows service that executes
   573  your rclone command, as an alternative to scheduled task configured to run at startup.
   574  
   575  ##### Mount command built-in service integration
   576  
   577  For mount commands, rclone has a built-in Windows service integration via the third-party
   578  WinFsp library it uses. Registering as a regular Windows service easy, as you just have to
   579  execute the built-in PowerShell command `New-Service` (requires administrative privileges).
   580  
   581  Example of a PowerShell command that creates a Windows service for mounting
   582  some `remote:/files` as drive letter `X:`, for *all* users (service will be running as the
   583  local system account):
   584  
   585  ```
   586  New-Service -Name Rclone -BinaryPathName 'c:\rclone\rclone.exe mount remote:/files X: --config c:\rclone\config\rclone.conf --log-file c:\rclone\logs\mount.txt'
   587  ```
   588  
   589  The [WinFsp service infrastructure](https://github.com/billziss-gh/winfsp/wiki/WinFsp-Service-Architecture)
   590  supports incorporating services for file system implementations, such as rclone,
   591  into its own launcher service, as kind of "child services". This has the additional
   592  advantage that it also implements a network provider that integrates into
   593  Windows standard methods for managing network drives. This is currently not
   594  officially supported by Rclone, but with WinFsp version 2019.3 B2 / v1.5B2 or later
   595  it should be possible through path rewriting as described [here](https://github.com/rclone/rclone/issues/3340).
   596  
   597  ##### Third-party service integration
   598  
   599  To Windows service running any rclone command, the excellent third-party utility
   600  [NSSM](http://nssm.cc), the "Non-Sucking Service Manager", can be used.
   601  It includes some advanced features such as adjusting process priority, defining
   602  process environment variables, redirect to file anything written to stdout, and
   603  customized response to different exit codes, with a GUI to configure everything from
   604  (although it can also be used from command line ).
   605  
   606  There are also several other alternatives. To mention one more,
   607  [WinSW](https://github.com/winsw/winsw), "Windows Service Wrapper", is worth checking out.
   608  It requires .NET Framework, but it is preinstalled on newer versions of Windows, and it
   609  also provides alternative standalone distributions which includes necessary runtime (.NET 5).
   610  WinSW is a command-line only utility, where you have to manually create an XML file with
   611  service configuration. This may be a drawback for some, but it can also be an advantage
   612  as it is easy to back up and reuse the configuration
   613  settings, without having go through manual steps in a GUI. One thing to note is that
   614  by default it does not restart the service on error, one have to explicit enable this
   615  in the configuration file (via the "onfailure" parameter).
   616  
   617  ### Autostart on Linux
   618  
   619  #### Start as a service
   620  
   621  To always run rclone in background, relevant for mount commands etc,
   622  you can use systemd to set up rclone as a system or user service. Running as a
   623  system service ensures that it is run at startup even if the user it is running as
   624  has no active session. Running rclone as a user service ensures that it only
   625  starts after the configured user has logged into the system.
   626  
   627  #### Run periodically from cron
   628  
   629  To run a periodic command, such as a copy/sync, you can set up a cron job.