设置redis为系统服务
vi /etc/systemd/system/redis-server.service
添加如下内容
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
User=root
Group=root
Type=forking
ExecStart= /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
ExecStop=/usr/local/redis/bin/redis-cli shutdown
Restart=always
[Install]
WantedBy=multi-user.target
[Unit] 定义基础信息
- Description 是当前服务的描述
- After 是在哪个服务后面启动,一般是网络服务启动后启动
[Service] 定义如何启动当前服务的信息
- ExecStart :是启动服务的命令
- ExecStop: 是停止服务的指令
- type :是启动类型(
ExecStart
字段将以fork()
方式启动,此时父进程将会退出,子进程将成为主进程 )- restart:定义了重启方式(always表示不管什么原因退出,总是重启)
[Install] 定义安装相关信息
- WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行
保存后执行
systemctl daemon-reload
【重新加载systemctl配置文件】
systemctl enable redis-server
【将redis服务设置为开机启动】
systemctl
其实systemd是一组命令,它涉及到系统管理的方方面面,功能强大,缺点就是体系太过庞大,导致十分复杂。 systemctl
是 Systemd 的主命令,用于管理系统。
这里只介绍和本配置相关的内容。
-
每一个Unit都有一个配置文件,用来告诉systemd怎么启动这个Unit;
-
systemd默认从
/etc/systemd/system/
读取配置文件。(这个目录内文件大多是软连接,指向/usr/lib/systemd/system/
。 -
systemctl enable
命令用于在上面两个目录之间,建立链接关系。(撤销命令为systemctl disable
,相当于撤销开机启动) -
修改完配置文件后,需要重新加载配置文件然后重启,使之生效。
systemctl daemon-reload
systemctl restart redis-server
systemd的详细信息请移步☞ 阮一峰的博客