Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Run redis inside WSL as background service on Windows startup

Step by step guide to run redis-server inside WSL(Windows Subsystem for Linux) on Windows

I have tried to setup redis as starting background task with wsl-autostart, Task Scheduler and with lot vbs scripts including one described here but none of them seemed to work.

In the end I have manually created a simple one that does the job. This script basically starts a hidden Ubuntu Window and starts redis-server inside it.

  1. Install WSL (this is tested with Ubuntu 18.04 version)

  2. Install redis-server inside WSL sudo apt install redis-server

  3. Add sudo permission to your user to execute service command without password Open sudoers file sudo visudo and add to end: your_username ALL=NOPASSWD:/usr/sbin/service redis-server or if you want to disable sudo passwords generally add this to the end: your_username ALL=(ALL:ALL) NOPASSWD:ALL

  4. Create vbs file e.g start-redis.vbs inside startup folder (Open Run and enter shell:startup)

  5. In vbs file insert following:

Set oShell = CreateObject("WScript.Shell")
oShell.Run "wsl", 0
oShell.Run "bash -c ""sudo service redis-server start --daemonize yes"""
  1. That's it. You can try it by running vbs script and then run htop inside WSL terminal. You should see that redis is running. You can also set this up to work with Windows Task Scheduler.
Copy link

rescenic commented May 4, 2020

In step 5, why do you add more commands after line 2, can't you just combine line 2 and 3 like this:
oShell.Run "wsl sudo service redis-server start --daemonize yes", 0

Because i tried it with ssh, with your code not realy working, but it works like this:
Set oShell = CreateObject("WScript.Shell")
oShell.Run "wsl -d openSUSE-Leap-15-1 sudo /usr/sbin/sshd", 0

Copy link

opusmagna commented Sep 12, 2020

I have created a batch script for this purpose, saved it and added it as a start-up program on my machine.

Please note that step 3 mentioned is still necessary.

cmd /c wsl --exec sudo service redis-server start && Exit /B 5

Copy link

bhavin-matsol commented Sep 15, 2020

On ubuntu, In order to make this work, I needed to modify step 3 to add * wildcard at the end.
your_username ALL=NOPASSWD:/usr/sbin/service redis-server *

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