启动失败redis.service:单元redis-server.service被屏蔽

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

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

启动 redis 服务时
$ sudo systemctl start redis

我收到消息:

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

我不知道这个错误。

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

$ 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

这里

  • 单元是描述和定义网络行为,
  • 服务是指定服务的行为,
  • 安装 定义服务在启用时应附加到的 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

你必须运行代码

sudo systemctl daemon-reload

1.sudo systemctl unmask redis-server.service

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

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

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

[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