今天想设置redis开机自启动,我觉得这样子比较好,但是在网上找了很长时间发现大家都是基于chkconfig的写法来设置的,并不能由systemd进程来统一管理,所以这里我自己编写了一个,希望大家可以提出宝贵意见。
首先是在配置文件将redis的进程设置为daemon守护模式运行
接下来编写unit代码:
[root@ELK-chaofeng04 system]# cat redis.service [Unit] Description=nginx scripts After=network.target remote-fs.target nss-lookup.target syslog.target [Service] Type=forking Password=123456 PidPort=6379 ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf ExecStop=/usr/local/redis/bin/redis-cli -a ${Password} -p ${PidPort} shutdown [Install] WantedBy=multi-user.target
将这段代码贴在配置文件中,然后命名为redis.service并放在/usr/lib/systemd/system目录下即可。最后使用systemctl enable redis即可设置成功开启自启动。
首先需要说的有以下几点:
1、unit单元中没有添加status查看状态,我觉得我这里一般通过判断端口来查看redis进程是否正常的。
2、在Execstart中,我是自定义了一个redis的配置文件,并启动的时候指定一下配置文件的绝对路径。
3、在ExecStop中,我用到了-a参数,后面跟的是密码,因为redis的登录密码我已经在配置文件中开启认证了,所以使用redis-cli登录的时候需要指定密码,否则不能关闭redis进程。关于密码的设置我在之前的博客也有可以查看。
不足:
1、unit单元中的路径都是给定的,比如配置文件的路径等,所以移动配置文件的时候需要修改unit
2、密码在配置文件中修改以后,也需要在unit单元中进行修改才可以。这样子造成一些麻烦。
3、没有status状态查看。