systemctl 管理 redis

创建服务

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

1
2
3
4
5
6
7
8
9
10
[Unit]
Description=Redis
After=network.target

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

[Install]
WantedBy=multi-user.target
  • [Unit] 表示这是基础信息
    Description 是描述
    After 是在那个服务后面启动,一般是网络服务启动后启动
  • [Service] 表示这里是服务信息
    ExecStart 是启动服务的命令
    ExecStop 是停止服务的指令
  • [Install] 表示这是是安装相关信息
    WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。
创建软链接

创建软链接是为了下一步系统初始化时自动启动服务

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

创建软链接就好比Windows下的快捷方式
ln -s 是创建软链接
ln -s 原文件 目标文件(快捷方式的决定地址)

如果创建软连接的时候出现异常,不要担心,看看/etc/systemd/system/multi-user.target.wants/ 目录是否正常创建软链接为准,有时候报错只是提示一下,其实成功了。

1
2
3
4
5
6
$ ll /etc/systemd/system/multi-user.target.wants/
total 8
drwxr-xr-x 2 root root 4096 Mar 30 15:46 ./
drwxr-xr-x 13 root root 4096 Mar 13 14:18 ../
lrwxrwxrwx 1 root root 31 Nov 23 14:43 redis.service -> /lib/systemd/system/redis.service
...略...

ps: 有时候/lib/systemd/system/redis.service已经存在,只需要创建软链接即可,而且执行systemctl enable redis时可以自动创建软链接。

刷新配置

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

1
$ systemctl daemon-reload

如果没有权限可以使用sudo

1
$ sudo systemctl daemon-reload
启动、重启、停止

启动redis

1
$ systemctl start redis

重启redis

1
$ systemctl restart redis

停止redis

1
$ systemctl stop redis
开机自启动

redis服务加入开机启动

1
$ systemctl enable redis

禁止开机启动

1
$ systemctl disable redis
查看状态

查看状态

1
$ systemctl status redis