无法启动redis.service:单位redis-server.service被屏蔽

问题描述 投票:0回答:6

我在ubuntu 16.04上安装了Redis服务器。但是当我尝试使用

启动redis服务时
$ sudo systemctl start redis

我收到消息:

Failed to start redis.service: Unit redis-server.service is masked.

我对这个错误一无所知。

redis ubuntu-16.04 servicestack.redis
6个回答
68
投票

我找到了解决方案。我认为这对其他人会有帮助 | systemctl 取消屏蔽服务名称

$ sudo systemctl unmask  redis-server.service

19
投票

如果目录路径中缺少 redis.service 文件

/etc/systemd/system/redis.service
所以我们必须使用以下命令在该目录中创建文件:

sudo nano /etc/systemd/system/redis.service
并写下以下内容

[Unit]
Description=Redis In-Memory Data Store 
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target

这里

  • Unit是描述和定义网络行为,
  • Service 是指定服务的行为并且
  • Install 定义服务应附加到的 systemd 目标(如果启用)。

然后使用

创建redis用户组和目录
sudo adduser --system --group --no-create-home redis
  1. sudo mkdir /var/lib/redis
    (创建目录)
  2. sudo chown redis:redis /var/lib/redis
    (更改所有者权限)
  3. sudo chmod 770 /var/lib/redis

运行服务

sudo systemctl start redis
它将正常工作并使用

检查状态
sudo systemctl status redis

6
投票

对于 Ubuntu 用户运行

sudo systemctl restart redis-server

1
投票

1.

sudo systemctl unmask  redis-server.service

如果目录路径中缺少 redis.service 文件

/etc/systemd/system/redis.service
,所以我们必须使用如下命令在该目录中创建文件:

sudo nano /etc/systemd/system/redis.service
并写下以下内容

[Unit]
Description=Redis In-Memory Data Store 
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target

然后使用创建redis用户组和目录

sudo adduser --system --group --no-create-home redis
sudo mkdir /var/lib/redis (Create directory)
sudo chown redis:redis /var/lib/redis (Change owner permission)
sudo chmod 770 /var/lib/redis

运行服务

sudo systemctl start redis
它将正常工作并使用

检查状态
sudo systemctl status redis

0
投票

你可以跑

sudo systemctl 重新启动 redis-server

sudo service redis-server restart(如果您使用的是 WSL)


-1
投票

你必须运行代码

sudo systemctl daemon-reload
© www.soinside.com 2019 - 2024. All rights reserved.