• centos7 systemctl 启动 Redis 失败


    转自:http://sloger.info/posts/systemd-failed-to-start-redis-in-gentoo

    今天启动 Redis 时阻塞很长时间,之后显示启动失败,启动状态如下。

    systemd[1]: redis.service start operation timed out. Terminating.
    systemd[1]: Failed to start A persistent key-value database.
    systemd[1]: Unit redis.service entered failed state.
    

    看了下 service 文件,发现 Systemd 启动命令如下

    ExecStart=/usr/sbin/redis-server /etc/redis.conf
    

    手动运行这条命令,发现是正常的,所以猜想是 service 文件的问题,后来发现只需要把 [Service] 部分的 Type=forking 注释掉就行了。

    [Service]
    # Type=forking
    # PIDFile=/var/run/redis/redis.pid
    ExecStart=/usr/sbin/redis-server /etc/redis.conf
    User=redis
    Group=redis
    

    之后重新加载 Service 文件并启动 Redis 服务

    sudo systemctl daemon-reload
    
    sudo systemctl start redis
    

    Man pages 对 Systemd 服务启动类型 Type 的解释如下

    If set to forking, it is expected that the process configured with ExecStart= will call fork() as part of its start-up. The parent process is expected to exit when start-up is complete and all communication channels are set up. The child continues to run as the main daemon process. This is the behavior of traditional UNIX daemons. If this setting is used, it is recommended to also use the PIDFile= option, so that systemd can identify the main process of the daemon. systemd will proceed with starting follow-up units as soon as the parent process exits.
    

    因为 Redis 配置文件里配置的是
    daemonize off

  • 相关阅读:
    python获取公网ip,本地ip及所在国家城市等相关信息收藏
    Tkinter的下拉列表Combobox
    pyinstaller打包pyqt文件(转)
    通过pyqt5实现俄罗斯方块游戏例子
    pygame游戏开发入门例子
    python界面Tkinter编程(tkMessageBox对话框使用)
    python tkinter-菜单栏
    python tkinter-容器、子窗体
    HUNNU--湖师大--11409--Skill
    [置顶] 博客搬迁到新地址。
  • 原文地址:https://www.cnblogs.com/rwxwsblog/p/5750540.html
Copyright © 2020-2023  润新知