Windows 10 Linux-Subsystem Redis startet nicht automatisch

Ich habe Redis auf dem Windows 10 Linux-Subsystem installiert. Ich folgte den Anweisungen unter https://redis.io/topics/quickstart und ich habe darauf geachtet, dass ich alle in Abschnitt genannten Schritte befolgt habe Redis richtiger installieren richtig.

Versucht jedoch, den folgenden Befehl auszuführen

sudo update-rc.d redis_6379 defaults

Ich erhalte folgenden Fehler:

~$ sudo update-rc.d redis_6379 defaults
insserv: warning: script 'K01redis_6379' missing LSB tags and overrides
insserv: warning: script 'redis_6379' missing LSB tags and overrides
initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
The script you are attempting to invoke has been converted to an Upstart
job, but lsb-header is not supported for Upstart jobs.
insserv: warning: script 'cron' missing LSB tags and overrides
insserv: Default-Start undefined, assuming empty start runlevel(s) for script `cron'
insserv: Default-Stop  undefined, assuming empty stop  runlevel(s) for script `cron'
initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
The script you are attempting to invoke has been converted to an Upstart
job, but lsb-header is not supported for Upstart jobs.
insserv: warning: script 'friendly-recovery' missing LSB tags and overrides
insserv: Default-Start undefined, assuming empty start runlevel(s) for script `friendly-recovery'
insserv: Default-Stop  undefined, assuming empty stop  runlevel(s) for script `friendly-recovery'

Manuelles Starten des Servers funktioniert:

~$ sudo /etc/init.d/redis_6379 start
Starting Redis server...
~$ redis-cli ping
PONG

Kann mir bitte jemand helfen Redis auf WLS so konfigurieren, dass es automatisch im Hintergrund startet, wie es auf dem tatsächlichen Ubuntu-Computer der Fall ist?

Dank.

Author: Jignesh Gohel, 2017-08-09

2 answers

Hier sind meine Anweisungen, wie ich Redis so konfiguriert habe, dass es beim Windows-Start als Hintergrundaufgabe gestartet wird.

  1. Installieren Sie WSL (dies wird mit Ubuntu 18.04 Version getestet)

  2. Installieren Sie redis-server in WSL:

    sudo apt install redis-server
    
  3. Fügen Sie Ihrem Benutzer die sudo-Berechtigung hinzu, um den Dienstbefehl ohne Kennwort auszuführen Öffnen Sie die sudoers-Datei sudo visudo und fügen Sie sie dem Ende hinzu:

    your_username ALL=NOPASSWD:/usr/sbin/service redis-server
    

    Oder wenn Sie Sudo-Passwörter deaktivieren möchten, fügen Sie dies im Allgemeinen zum Ende hinzu:

    your_username ALL=(ALL:ALL) NOPASSWD:ALL
    
  4. Erstellen Sie eine VBS-Datei, z. B. start-redis.vbs im Startordner (Öffnen Sie Run und geben Sie shell: startup)

    Fügen Sie in der VBS-Datei Folgendes ein:

    Set oShell = CreateObject("WScript.Shell")
    oShell.Run "wsl", 0
    oShell.Run "bash -c ""sudo service redis-server start --daemonize yes"""
    

Das war ' s. Sie können es versuchen, indem Sie das vbs-Skript ausführen und dann htop im WSL-Terminal ausführen. Sie sollten sehen, dass Redis läuft.

Ich habe diese Anweisungen auf GitHub gepostet.

 3
Author: Tomislav Brabec,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-02-07 09:37:11
  1. Sie können auf die nächste Version von Windows warten oder den Insider-Build installieren, der Hintergrunddienste unterstützt https://blogs.msdn.microsoft.com/commandline/2017/12/04/background-task-support-in-wsl/
  2. Sie können den Windows Redis-Dienst installieren (kein Linux-Subsystem erforderlich) https://github.com/MicrosoftArchive/redis Persönliche Erfahrung war, dies funktioniert gut für eine einzelne Testinstanz, hat aber große Kopfschmerzen beim Versuch, einen zuverlässigen Cluster zu erstellen.
  3. führen Sie ein Linux-Instanz entweder als VM oder auf einem separaten Server.

Wenn dies eine Entwicklerinstanz zum Testen von Code ist, gehen Sie mit 2 oder 3. Wenn es sich um eine Produktionsbereitstellung handelt und Sie erwarten, einen Cluster auszuführen, dann 3. WSL ist ideal zum Ausführen kleiner Skripte und zum Testen von Dingen, aber ich habe es nicht als Ersatz für Linux-Server sehr freundlich gefunden. YMMV

 0
Author: rob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-02-09 11:30:16