chkconfig没有添加redis init脚本

时间:2015-06-27 22:07:00

标签: linux centos initialization startup

我正在尝试将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工作得很好

1 个答案:

答案 0 :(得分:3)

命令为chkconfig --add [name]而非chkconfig --add [path],因此您需要chkconfig --add redis

在系统系统上说,你甚至不应该使用init.d服务脚本,因为你不需要它。

更新了“遗留”service命令以正常处理启动系统服务,因此您可能/甚至可能甚至不使用您的脚本(如果您是因为您的脚本只是转发到systemctl您不需要它,因为正如我所说,service命令已经为你做了这个。)

要模拟启动时启动服务的chkconfig功能,请使用systemctl enable <service>