【问题标题】:Failed to start redis.service: Unit redis-server.service is maskedredis.service启动失败:单元redis-server.service被屏蔽
【发布时间】:2017-03-12 01:20:48
【问题描述】:

我在 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


    【解决方案1】:

    我找到了解决方案。我认为这对其他人会有所帮助 | systemctl unmask servicename

    $ sudo systemctl unmask  redis-server.service
    

    【讨论】:

    • 在 Ubuntu 20 上,原来我需要调用 sudo systemctl restart redis-server 而不是 sudo systemctl restart redis,doh!
    【解决方案2】:

    如果 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
    

    这里

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

    【讨论】:

    • 我现在用redis-server /path/to/redis.conf 启动了redis-server,如何查看我的redis-server 的状态? @aniruddh
    • sudo systemctl status redis返回Active: active (exited),为什么不在RUNNING模式@aniruddh
    • 在我的情况下,我必须首先使用命令 sudo userdel -r redis 删除已经存在的 redis 用户
    • 如果你想在centos服务器上安装这个答案,它会丢失很多重要信息。我在这里找到了更好的解释:linuxcloudvps.com/blog/how-to-set-up-redis-on-centos-7
    【解决方案3】:

    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
    

    【讨论】:

      【解决方案4】:

      你必须运行代码

      sudo systemctl daemon-reload
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-07-06
        • 2021-03-13
        • 1970-01-01
        • 1970-01-01
        • 2019-10-24
        • 2018-03-25
        • 2021-06-24
        相关资源
        最近更新 更多