CentOS 5.5:关机时服务没有停止

我已经写了脚本/etc/init.d/xxx,它启动/停止在CentOS 5.5上的服务

当我打电话“服务启动xxx”或“服务停止xxx”一切工作正常。 但是,当我重新启动我的机器,我在日志中看到关机时服务没有停止。

但是,它启动时启动。

 > chkconfig --list xxx 
  xxx 0:关1:关2:开3:开4:开5:开6:关

我做错了什么。 谢谢。

UPD:脚本的头部:

#!/bin/bash # # Startup script for the xxx # # chkconfig: 345 99 01 # description: This script ... # ### BEGIN INIT INFO # Provides: xxx # Required-Start: $local_fs $network # Required-Stop: $local_fs $network # Should-Start: ### END INIT INFO 

我不是Linux专家,实际上更多的是noob,但是为了执行关机脚本,您必须在启动脚本的/ var / lock / subsys /文件夹中创build一个锁文件。 我在这里find了答案: CentOS论坛

脚本示例:

 #!/bin/sh # chkconfig: 345 98 11 # description: my auto start-stop script. echo "my service is doing something :)" >> /root/tempfile case "$1" in start) echo "my service started" >> /root/tempfile touch /var/lock/subsys/myservice echo "OK" ;; stop) echo "my service stoped" >> /root/tempfile rm -f /var/lock/subsys/myservice echo "OK" ;; esac 

您可能必须在/etc/rc6.d/目录中创build链接,以便在closures服务器时调用该脚本。

ls -l /etc/rc5.d/K60nfs

lrwxrwxrwx 1 root root 13 2010年5月13日/etc/rc5.d/K60nfs – > ../init.d/nfs

当你说它没有被closures的时候,你知道这个脚本是否从未被调用,或者它是不是正在做它应该做的?

在其他日志之上,我会添加一些echo语句到启动/closures脚本,只是做一些事情:

 echo "$(date) Entering script" >> ~root/debugging.log ... echo "$(date) Entering section x" >> ~root/debugging.log 

可能会帮助您追踪在哪里寻找问题

你可以发布脚本的标题吗?

像这样的东西:

 #!/bin/sh # # /etc/init.d/mysystem # Subsystem file for "MySystem" server # # chkconfig: 2345 95 05 # description: MySystem server daemon # # processname: MySystem # config: /etc/MySystem/mySystem.conf # config: /etc/sysconfig/mySystem # pidfile: /var/run/MySystem.pid 

波格丹·奥尔泰亚努(Bogdan Olteanu)可能会回答你的情况,那是我的。 锁文件必须与启动脚本具有相同的名称,以便CentOS可以将其closures。 在你的假设情况下,你应该在你的启动方法中有这一行:

 touch /var/lock/subsys/xxx 

必须是完全相同的服务名称(xxx)。

欢呼,CaioToOn!