Search code examples
windows-subsystem-for-linuxwindows-11

Windows 11 Ubuntu WSL2 - Autostarting services with /etc/wsl.conf doesn't work


I'm attempting to start docker and postgresql automatically with my ubuntu wsl2 instance. I read about the /etc/wsl.conf configuration file and it only starts one service, not two. For example if I have:

[boot]
command = service docker start

and restart wsl.. I get the following:

mryan ~ $service docker status
* Docker is not running
mryan ~ $service postgresql status
12/main (port 5432): online

Again, if I remove the last line from etc/wsl.conf and restart wsl. Docker starts just fine. I've also tried quotes around the commands as in command="service docker start" but it didn't make a difference. Is there some format error I'm making here? Any help would be appreciated. I can get around this by manually starting services but it would be nice to make things work properly!


Solution

  • Try combining the commands into a single line maybe, with &&.

    One still can start it on demand, eg. with .bashrc or .zshrc:

    RUNNING=`ps aux | grep dockerd | grep -v grep`
    if [ -z "$RUNNING" ]; then
        sudo dockerd > /dev/null 2>&1 &
        disown
    fi
    

    This may require group docker:

    sudo usermod -a -G docker $USER