CentOS7 Systemctl管理Redis和sentinel启动与停止与开机启动

1. 创建服务
用service来管理服务的时候,是在/etc/init.d/目录中创建一个脚本文件,来管理服务的启动和停止,在systemctl中,也类似,文件目录有所不同,在/lib/systemd/system目录下创建一个脚本文件redis.service,里面的内容如下:
[Unit]
Description=Redis
After=network.target

[Service]
ExecStart=/usr/local/bin/redis-server /usr/local/redis/redis.conf –daemonize no
ExecStop=/usr/local/bin/redis-cli -h -p 6379 shutdown

[Install]
WantedBy=multi-user.target

[Unit] 表示这是基础信息
Description 是描述
After 是在那个服务后面启动,一般是网络服务启动后启动
[Service] 表示这里是服务信息
ExecStart 是启动服务的命令
ExecStop 是停止服务的指令
[Install] 表示这是是安装相关信息
WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。
更详细的service文件说明请访问:这里
2. 创建软链接
创建软链接是为了下一步系统初始化时自动启动服务
ln -s /lib/systemd/system/redis.service /etc/systemd/system/multi-user.target.wants/redis.service

3. 刷新配置

刚刚配置的服务需要让systemctl能识别,就必须刷新配置
#systemctl daemon-reload

如果没有权限可以使用sudo
# systemctl daemon-reload

4. 启动、重启、停止
启动redis
#systemctl start redis
重启redis
#systemctl restart redis
停止redis
#systemctl stop redis
5. 开机自启动
redis服务加入开机启动
#systemctl enable redis
禁止开机启动
#systemctl disable redis
6. 查看状态
查看状态
#systemctl status redis

同样:增加redis-sentiel的启停服务:

vi redis-sentinel.service

[Unit]
Description=Redis
After=network.target

[Service]
ExecStart=/usr/local/redis/bin/redis-sentinel /usr/local/redis/etc/sentinel.conf –sentinel
ExecStop=/usr/local/redis/bin/redis-cli -p 26379 shutdown

[Install]
WantedBy=multi-user.target

ln -s /lib/systemd/system/redis-sentinel.service /etc/systemd/system/multi-user.target.wants/redis-sentinel.service

systemctl daemon-reload

特别要注意:启动redis 和redis-sentinel时,不要分开启动,而是要同时启,俺就是单独与分开启动,造成26379 sentinel端口总是无法正常打开,但是直接执行如下命令就又可以:

/usr/local/redis/bin/redis-sentinel /usr/local/redis/etc/sentinel.conf –sentinel 就可以打开26379

但如果你分别执行:

systemctl start redis

systemctl start redis-sentinel

就只能打开6379端口,26379就无法打开。

排查了很久,最后,才从网上一篇文章,获取到灵感,一试之下,才知道要这样启动redis 和sentinel,6379 和26379端口才可以打开:

启动redis redis-sentinel
systemctl start redis redis-sentinel.service #一起启,不可以单独起。

停止redis redis-sentinel

systemctl stop redis redis-sentinel.service #一起停,不可以单独停。

 

     

如果这文章对你有帮助,请扫左上角微信支付-支付宝,给于打赏,以助博客运营

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注