Installation: Running as a Service
-
Running servers as OS services reduces downtime whenever a machine restarts because the servers automatically start every time the machine boots.
-
After completing the Server configuration process either via the Setup Wizard or Manually, you can register the Server as a Service using the
rvn
tool that can be found inside the RavenDB Server distribution package. -
After registering RavenDB as a service, be sure to check your OS "Services" manager to see that the "RavenDB" service is there and that the Startup Type is "Automatic".
In this page:
Prerequisites
The prerequisites for running RavenDB as a Service are defined here.
Windows
Registering
To register RavenDB as a Service on Windows OS, run PowerShell with administrator privileges.
Navigate to the RavenDB package root and execute:
.\setup-as-service.ps1
If you receive the following error:
"setup-as-service.ps1 cannot be loaded. The file [YourFileLocation] is not digitally signed"
- Run the following command
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
. - Affirm the "Execution Policy Change" with
Y
. - Run
.\setup-as-service.ps1
again.
Alternatively, navigate to the node Server folder and execute the following command:
.\rvn.exe windows-service register --service-name RavenDB
If you want to run the service under a non-default user (Local Service is default) then execute the following command:
.\rvn.exe windows-service register --service-name RavenDB --service-user-name MyUser --service-user-password MyPassword
Unregistering
You can end the service using:
.\uninstall-service.ps1
Alternatively, use the 'unregister' command as follows:
.\rvn.exe windows-service unregister --service-name RavenDB
Starting and Stopping
Service can be also controlled using the start
and stop
commands:
.\rvn.exe windows-service stop --service-name RavenDB
.\rvn.exe windows-service start --service-name RavenDB
Linux - Ubuntu
You can run RavenDB as a daemon by running the script install-daemon.sh
from the package root.
Alternatively, open a bash terminal, and create the following file /etc/systemd/system/ravendb.service
, using super-user permissions:
[Unit]
Description=RavenDB NoSQL Database
After=network.target
[Service]
LimitCORE=infinity
LimitNOFILE=65535
LimitRSS=infinity
LimitAS=infinity
LimitMEMLOCK=infinity
TasksMax=infinity
StartLimitBurst=0
Restart=on-failure
Type=simple
TimeoutStopSec=300
User=<desired-user>
ExecStart=<path-to-RavenDB>/run.sh
[Install]
WantedBy=multi-user.target
Note: Replace <desired-user>
with your username and <path-to-RavenDB>
with your path.
Then register the service and enable it on startup:
systemctl daemon-reload
systemctl enable ravendb.service
Start the service:
systemctl start ravendb.service
View its status using:
systemctl status ravendb.service
or
journalctl -f -u ravendb.service