Я установил Redis в Windows 10 Linux Subsystem. Я следовал инструкциям, доступным по адресу https://redis.io/topics/quickstart, и позаботился о том, чтобы я более правильно выполнил все шаги, упомянутые в разделе Установка Redis .

Однако пытается запустить следующую команду

sudo update-rc.d redis_6379 defaults

Я получаю следующую ошибку:

~$ 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'

Запуск сервера вручную:

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

Кто-нибудь может помочь мне в настройке Redis на WLS, чтобы он автоматически запускался в фоновом режиме, как это происходит на реальной машине с Ubuntu?

Благодарю.

2 ответа2

0
  1. вы можете дождаться следующего выпуска Windows или установить инсайдерскую сборку, которая поддерживает фоновые сервисы https://blogs.msdn.microsoft.com/commandline/2017/12/04/background-task-support-in-wsl/
  2. Вы можете установить службу Windows Redis (не требуется подсистема Linux). https://github.com/MicrosoftArchive/redis Личный опыт показал, что это прекрасно работает для отдельного экземпляра теста, но имеет серьезные проблемы при попытке создать надежный кластер.
  3. запустить экземпляр Linux как виртуальную машину или на отдельном сервере.

Если это экземпляр разработчика для тестирования кода, перейдите с 2 или 3. Если это производственное развертывание, и вы ожидаете запустить кластер, то 3. WSL создан для запуска небольших скриптов, тестирования вещей, но я не нашел его очень удобным в качестве замены для сервера Linux. YMMV

0

Вот мои инструкции о том, как я настроил Redis для запуска в качестве фоновой задачи при запуске Windows.

  1. Установите WSL (это протестировано с версией Ubuntu 18.04)

  2. Установите Redis-сервер внутри WSL:

    sudo apt install redis-server
    
  3. Добавьте разрешение sudo для пользователя на выполнение служебной команды без пароля. Откройте файл sudoers sudo visudo и добавьте в конец:

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

    или, если вы хотите отключить пароли sudo, обычно добавьте это в конец:

    your_username ALL=(ALL:ALL) NOPASSWD:ALL
    
  4. Создайте файл VBS, например, start-redis.vbs в папке автозагрузки (откройте Run и введите shell: автозагрузка)

    В файл vbs вставьте следующее:

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

Вот и все. Вы можете попробовать это, запустив скрипт vbs, а затем запустите htop внутри терминала WSL. Вы должны увидеть, что Redis работает.

Я разместил эти инструкции на GitHub.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .