Linux系统从CentOS7以后版本,系统服务管理全部是基于systemctl进行管理,与之前的版本发动比较大。自编译软件正常情况下无法通过systemctl命令进行启动,关闭或进行开机工作。但我们可以手动编写service配置文件,达到通过yum安装rpm一样的效果。

本次以安装最新版本redis为例, 以下是操作步骤:

源码下载

从Redis官方网站下载源码包,下载地址为:http://download.redis.io/releases/redis-3.0.4.tar.gz

解压重命名

[root@localhost /] chmod +x redis-3.0.4.tar.gz
[root#localhost /] tar -zxvf[root@localhost /] mv redis-3.0.4 redis

编译安装

在安装前最好升级一下系统

[root@localhost /] yum upgrade 
[root@localhost redis] cd /redis-3.0.4 
[root@localhost reids] make && make install

Copy生成文件至指定目录

进入src目录,将编译生成文件及配置文件分别copy至/usr/local/bin/etc/redis.conf。本次安装至/usr/local/bin

#删除源文件及目标文件以方便后续copy生成可执行文件
[root@localhost reids] rm -f src/*.c *.h *.o
#copy可执行文件至环境变量目录
[root@localhost redis] cp src/redis-* /usr/local/bin   
#copy配置文件至系统配置文件目录,如果是集群安装,文件最好以端口作为文件名称
[root@localhost reids] cp redis.conf /etc/

至此,redis已经安装完成。
接下来是配置开机启动及将期添加至systemctl下进行管理

新增redis用户及组

//增加redis用户组
[root@localhost /]# groupadd redis
[root@localhost /]# useradd -c Redis Server -s /sbin/nologin -d /var/lib/redis -g redis -G root 

reids参数解释:
-c 用户描述信息
-s 用户执行脚本,此处为安全考虑,redis用户是不允许远程登录,故使用/sbin/nologin
-d 用户home目录,此处无需在/home目录下创建redis子目录,故将其定位于/var/lib/redis空目录中
-G 扩展用户组,即表示此用户同时属于root用户组

增加服务

进入/usr/lib/systemd/system目录,增加redis.service文件,并添加如下内容

[Unit]
#描述信息
Description=Redis Server 3.0.4
#启动时机,开机启动最好在网络服务启动后即启动
After=network.target
[Service]
#此处为命令行启动redis的命令及参数,可参考官方文档
ExecStart=/usr/local/bin/redis-server /etc/redis.conf --daemonize no  
#停止redis服务器命令
ExecStop=/usr/local/bin/redis-cli -h 127.0.0.1 -p 6379 shutdown 
User=redis #运行reddis用户
Group=redis #所属组
[Install]
WantedBy=multi-user.target #字符界面下启动

测试服务

[root@localhost /]# systemctl status redis.service   
  redis.service - Redis Server 3.0.4   
  Loaded: loaded (/usr/lib/systemd/system/redis.service; enabled)   
  Active: active (running) since 一 2015-09-14 16:06:35 CST; 53min ago   
  Main PID: 17604 (redis-server)   CGroup: /system.slice/redis.service           
  └─17604 /usr/local/bin/redis-server *:6379    
  914 16:06:35 localhost.localdomain systemd[1]: Started Redis Server 3.0.4.
  #停止服务后查看端口或进行状态
 [root@localhost /]# systemctl stop redis.service 
 [root@localhost /]# netstat -ntlp #如果没有6379商品则表示已成功关闭

设置开机自启动

[root@localhost /]# systemctl enable redis.service #设置开机启动  
ln -s '/usr/lib/systemd/system/redis.service' '/etc/systemd/system/multi-user.target.wants/redis.service'   
[root@localhost /]# systemctl disable redis.service #关闭开机启动  
rm '/etc/systemd/system/multi-user.target.wants/redis.service' #开机启动即为创建一个指向multi-user.target.wants的软链接,删除即关闭开机启动

整个配置过程结束~~

Logo

更多推荐