通过WSL安装的redis server,无法自启动服务,如何解决?
发布于 作者:苏南大叔 来源:程序如此灵动~wsl
默认安装了个ubuntu
系统,ubuntu
系统里面安装了个redis
,redis
又安装了一个系统服务redis server
。但是,这个service
配置却没有生效。每次都需要在进入系统后,重新执行redis server
命令。这是不科学的!
大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文主要描述wsl
中服务无法启动的问题。如何解决这个问题呢?本文测试环境:win10
,wsl2
,redis server@7.0.0
。
问题描述
进入wsl
后,需要主动执行下面的命令,才可以真正启动redis-server
。命令如下:
sudo service redis-server start
大家可以看到:虽然名义上是service start
,但redis-server
服务并没有自动随着wsl
启动,简直不要更加自欺欺人。
查看init.d
这些服务都是以文件形式保存在/etc/init.d/
文件夹下面的。查看这个redis-server
文件,就可以看到相关的服务配置信息。
vi /etc/init.d/redis-server
可以用下面的命令检测redis-server
服务状态(虽然是没有什么用的)。
sudo service --status-all | grep redis
查看redis-server
及配置文件
在这个文件中,可以看到redis-server
文件以及redis.conf
配置文件的位置。
DAEMON=/usr/bin/redis-server
DAEMON_ARGS=/etc/redis/redis.conf
在/etc/redis/redis.conf
配置文件中,
- 可以找到端口号:
port 6379
。 - 也可以找到伺服器模式是开启的,
daemonize yes
。
编写wsl
启动文件
现在解决ubuntu
的服务不启动的问题,所以建立一个启动文件/etc/init.wsl
(名字其实是随意的)。编辑文件内容如下:
#!/bin/sh
/etc/init.d/redis-server $1
然后,注意编辑权限777
,否则无法启动。命令如下:
sudo chmod 777 /etc/init.wsl
相关链接:
使用启动文件
回到win10
系统,往常启动WSL
的命令是:
wsl
现在修改成,新的启动命令:
wsl -u root /etc/init.wsl start
如果使用这种更复杂的命令来代替的话,就可以实现启动wsl
的同时,顺便启动redis service
了。如果想顺便启动更多服务的话,就继续修改/etc/init.wsl
文件即可。
相关文章
综述
本文的内容,主要解决了redis
服务随wsl
系统启动的问题。但是,没有wsl
并没有跟随win10
系统启动。这将会在后面的文章里面解决这个问题。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。