今天想設置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狀態查看。