我正在尝试将redis添加到我的CentOS虚拟机的启动中,但是chkconfig似乎没有添加它。 我对其他几个init脚本执行了相同的过程,并且添加得很好。任何帮助告诉我我做错了什么都会很棒。 我查看了手册页并搜索了谷歌,但每件事都说要添加我已经拥有的标题值。我为hornetq init脚本和smpp模拟器脚本编写了相同的case语句,只是简单地改变了do_start和do_stop函数的内容来完成各自的工作。
我正在运行以下命令来添加init脚本:
chkconfig --add /etc/init.d/redis
然后我用以下内容检查列表:
chkconfig --list
导致:
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
hornetq 0:off 1:off 2:off 3:on 4:on 5:on 6:off
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
smppsim 0:off 1:off 2:off 3:on 4:on 5:on 6:off
我写的脚本如下:
#!/bin/sh
#
# startup script for running redis as a service.
#
# chkconfig: 350 95 15
# description: redis startup script
do_start(){
systemctl start redis.service
}
do_stop(){
systemctl stop redis.service
}
do_status(){
systemctl status redis.service
}
case "$1" in
'start')
do_start
do_status
;;
'stop')
do_stop
do_status
;;
'status')
do_status
;;
'restart')
do_stop
do_start
;;
*)
echo "usage: $0 start|stop|status|restart"
esac
***** EDIT ******
只是运行“服务redis start”的FYI工作得很好
答案 0 :(得分:3)
命令为chkconfig --add [name]
而非chkconfig --add [path]
,因此您需要chkconfig --add redis
。
在系统系统上说,你甚至不应该使用init.d服务脚本,因为你不需要它。
更新了“遗留”service
命令以正常处理启动系统服务,因此您可能/甚至可能甚至不使用您的脚本(如果您是因为您的脚本只是转发到systemctl
您不需要它,因为正如我所说,service
命令已经为你做了这个。)
要模拟启动时启动服务的chkconfig
功能,请使用systemctl enable <service>
。