说明:本篇博客篇幅较长,但其中的实质内容并不多;所以,本篇博客快速浏览为佳。
本篇博客参考文章有:【CentOS 将 Redis 配置为系统服务】 ,作者是【小狗快跑嘟嘟】;
目录
1.第一步:手动启动redis,并确定redis.pid文件的存在
2.第二步:在【/usr/lib/systemd/system】目录下,创建并编写redis的服务描述文件:redis.service
3.第三步:重载【/usr/lib/systemd/system】目录下的.service,让【redis服务描述文件】生效
至此,redis的服务化,就算是设置好了;然后,我们就可以使用服务化的systemctl及其子命令,来对redis这个应用进行各种操作了。
应用服务演示一:systemctl start redis:启动redis服务
应用服务演示二:systemctl status redis:查看启动后的redis状态
应用服务演示三:systemctl stop redis:关闭redis服务
应用服务演示四:systemctl restart redis:重启redis服务
应用服务演示五:systemctl enable redis:设置redis开机自启
应用服务演示六:systemctl is-enabled redis:查看redis,是否已经设置为了自启动
验证【自启动】:设置为redis自启动后,可以shutdown -r now重启系统,验证一下
应用服务演示七:systemctl disable redis:设置redis开机不自启
验证【不自启动】:设置为redis不自启动后,可以shutdown -r now重启系统,验证一下
应用服务演示八:systemctl list-unit-files:查看当前系统中,所有的服务的当前状态
如Tomcat,redis,MySQL这种重要的中间件,就可以把其设置为系统服务,这样以后就可以借由systemctl及其子命令,对其进行统一管理,然后也可以设置其为自启动;
一:应用服务化简介
1.为什么需要应用服务化?
以为redis为例,阐述如下内容:
痛点一:在Linux系统中安装redis后,启动redis、关闭redis、重启redis,都需要去redis的源代码目录,手动去调用文件:挺麻烦的!!!
痛点二:而且,安装了redis后,我们可以通过在redis安装文件目录中,手动执行【./src/redis-server redis.conf】,去加载redis.conf,启动redis;但是,当我们关闭Linux系统或者重启Linux系统时候,redis都是自动被关闭了的;然后,如果我们还想启动redis,任然需要手动执行【./src/redis-server redis.conf】;手动启动redis,这么做当然是可以的,但是在实际中,一家公司的服务器有很多台,如果每台服务器重启后都要手动去启动redis,这个工作量太大。为此,就可以将redis进行服务化,这样以后redis就会随着系统的启动而自动启动,就不需要我们手动去启动redis了。
说白了有两个重要的痛点:(1)redis需要手动的去redis源代码目录,进行各种管理;(2)redis无法跟随Linux系统启动而自启动;
而,把redis设置成系统服务,就可以解决这个两个痛点。
……………………………………………………
2.应用服务化简介
(1)应用服务化在Windows中也存在;
(2)应用服务化的好处:通过简单的命令,就可以列出目前系统中正在运行那些服务,以及这些服务的工作状态如何,也可以通过服务管理命令对这些服务进行管理;
(3)应用服务化的核心命令:systemctl(System Control:系统控制);
● 在把一个应用设置成应用服务化的过程中,需要大量的调用systemctl命令;
● 在把一个应用设置成应用服务化的过程后,也可通过调用systemctl命令,来管理这个应用;
(4)【把一个应用程序以为服务的方式在后台运行】,也可以称作【把这个应用配置成系统服务】;
……………………………………………………
3.应用服务化的核心命令:【systemctl】及其子指令
【systemctl及其子指令】 要明确两点:
● 【在将一个应用设置成系统服务】的过程中,需要使用【systemctl及其子指令】;
● 【已经把一个应用设置成了系统服务后】,依旧可以使用【systemctl及其子指令】来管理这个应用;
systemctl是一个核心的命令,其涉及到了很多子指令:这些是在日常开发中,所使用到的systemctl的常用命指令;这些指令都是针对服务的;
二:案例:CentOS中将redis配置成系统服务
该案例以【redis的服务化设置】为例;
1.第一步:手动启动redis,并确定redis.pid文件的存在
启动redis后,确认redis是否有pid文件: 主要目的是:获取redis的pid文件的全路径
然后,这儿可以顺便看下pid文件的内容:
说明:
(1) redis的pid文件【redis_6379.pid】,是一个标识,保存的是当前进程的编号;如果,我们在redis服务化以后,在redis进行重启或者是关闭的时候,需要从redis的pid文件【redis_6379.pid】中读取进程编号,对其进行kill杀进程的操作;
(2)在确认了redis的pid文件【redis_6379.pid】的文件名和路径后,就可以进行后续的动作了;
(3)在配置redis为系统服务的过程中,是否需要在redis已经被手动启动的情况下设置,尚不明确;反正,自己在设置的时候,是在redis被手动启动的情况下设置的,然后也设置OK了;(这一点,待确认吧)。。。。。即经过实测,有一点是明确的,redis没有启动的时候,在run目录下,是没有redis_6379.pid文件;;;;;;
……………………………………………………