服务不支持chkconfig

美好的一天,程序员。 我有个问题。 请帮忙。 我正在创build一个服务,它必须在加载Linux时自动加载。 所以,我将脚本复制到/etc/rc.d/init.d或/etc/init.d/目录中。 但是,当我正在执行命令

chkconfig --add listOfProcesses 

发生错误:

 service listOfProcesses doesn't support chkconfig 

这是脚本的内容。 我已经find了谷歌的第一个版本,并用它作为模式。

 #!/bin/bash # listOfProcesses Start the process which will show the list of processes # chkconfig: 345 110 02 # description: This process shows current time and the list of processes # processname: listOfProcesses ### BEGIN INIT INFO # Provides: # Required-Start: # Required-Stop: # Default-Start: 3 4 5 # Default-Stop: 0 1 2 6 # Short-Description: shows current time and the list of processes # Description: This process shows current time and the list of processes ### END INIT INFO # Source function library. KIND="listOfProcesses" start() { echo -n $"Starting $KIND services: " daemon /home/myscript echo } stop() { echo -n $"Shutting down $KIND services: " killproc /home/myscript echo } restart() { echo -n $"Restarting $KIND services: " killproc /home/myscript daemon /home/myscript echo } case "$1" in start) start ;; stop) stop ;; restart) restart ;; *) echo $"Usage: $0 {start|stop|restart}" exit 1 esac exit $? exit 0; 

第二个版本是由cron脚本创build的。 我发现了cron脚本,复制了它,并且改变了它,所以我用它作为模式。

 #!/bin/sh # # crond Start/Stop the cron clock daemon. # # chkconfig: 2345 90 60 # description: cron is a standard UNIX program that runs user-specified \ # programs at periodic scheduled times. vixie cron adds a \ # number of features to the basic UNIX cron, including better \ # security and more powerful configuration options. ### BEGIN INIT INFO # Provides: crond crontab # Required-Start: $local_fs $syslog # Required-Stop: $local_fs $syslog # Default-Start: 2345 # Default-Stop: 90 # Short-Description: run cron daemon # Description: cron is a standard UNIX program that runs user-specified # programs at periodic scheduled times. vixie cron adds a # number of features to the basic UNIX cron, including better # security and more powerful configuration options. ### END INIT INFO rights=whoami; root=root; [ -f "$rights"=="$root" ] || { echo "this programme requires root rights"; exit 1; } # Source function library. . /etc/rc.d/init.d/functions start() { echo -n $"Starting $KIND services: "; daemon showListOfProcesses; } stop() { echo -n $"Shutting down $KIND services: "; killproc showListOfProcesses; } restart() { stop start } reload() { restart; } force_reload() { # new configuration takes effect after restart restart } case "$1" in start) start ;; stop) stop ;; restart) restart ;; reload) reload ;; force-reload) force_reload ;; *) echo $"Usage: $0 {start|stop|restart|reload|force-reload}" exit 2 esac exit $? # Show the list of processes function showListOfProcesses { top > /dev/tty2; } 

但情况并没有改变。 问题是什么? 脚本中有什么错误?

Solutions Collecting From Web of "服务不支持chkconfig"

看看/etc/rc.d/init.dchkconfig可以打开或关闭的所有脚本,你会注意到前几个注释非常重要。 请参阅如何使用chkconfig和服务管理服务

 #!/bin/sh # # crond Start/Stop the cron clock daemon. # # chkconfig: 2345 90 60 # description: cron is a standard UNIX program that runs user-specified \ # programs at periodic scheduled times. vixie cron adds a \ # number of features to the basic UNIX cron, including better \ # security and more powerful configuration options. 

你有一个名为listofprocesses的脚本,但是chkconfig这个脚本看起来像crond因为第三行,因此它找不到任何叫做listofprocesses脚本

你当然也想更改chkconfig: 2345 90 60 。 其中说明了应该在哪个运行级别(在本例中是2,3,4和5),它的开始顺序是(90),以及它的终止顺序是(60)。

你可以用chkconfig --list listofprocesses检查服务是否正确设置。

只需在顶部添加以下行:#chkconfig: – 99 10
它应该做的伎俩

下面是一个需要在初始化脚本中的元素的优秀映射,以实现chkconfig和init子系统正在做什么,以及每个元素实际上做了什么:

http://www.tldp.org/HOWTO/HighQuality-Apps-HOWTO/boot.html

看起来最高优先级是99,至少在CentOS 6.5上,这正是我现在玩的。

我也遇到了这个问题,在关机期间无法调用停止功能。 在网上尝试了这么多的建议后找到了解决方案。 您需要在启动时添加“touch / var / lock / subsys /”,在脚本中添加rm -f / var / lock / subsys /“停止功能。停止可能不适用于第一次重新启动,因为在关机期间锁定可能不可用。将从下次重启开始工作。

请享用….:)

萨蒂亚