关于 linux 启动、重启、关机时,服务自动启动、自动关闭及 chkconfig 命令相关问题

2015-01-06 16:39:14 +08:00
 TFNotGiven

今天自己在/etc/init.d/中自己创建服务shell时遇见一些麻烦
问题在于不太了解linux启动、重启、关机时对应以下说明的关系
--level<等级代号>  指定读系统服务要在哪一个执行等级中开启或关毕。
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动
如果我这样设置:chkconfig --level 2345 servername on
第一个问题:我是否可以理解为在2345level时servername 服务启动,且其在关机重启时自动停止服务(即调用 service servername stop)
第二个问题:如果我理解有问题的话,那我应该如何在关机或是重启时停止该服务(必需停止并调用stop)
第三个问题:我看到网上写的一个关于chkconfig --add 的例子和我的理解及运行结果有些不同,例子如下:

例如service nfsserver没有设置自动启动选项的时候,我们在/rc*.d下看不到用来启动和停止service的symbollink文件

# chkconfig --list | grep nfsserver
nfsserver 0:off 1:off 2:off 3:off 4:off 5:off 6:off

# ls /etc/rc.d/rc3.d | grep nfsserver
# ls /etc/rc.d/rc5.d | grep nfsserver

当我们为nfsserver service设置自动启动选项后,我们就可以看到相应的symbollink文件了
# chkconfig --add nfsserver
nfsserver 0:off 1:off 2:off 3:on 4:off 5:on 6:off

# cd /etc/rc.d/rc3.d
# ls -l | grep nfsserver
lrwxrwxrwx 1 root root 12 2011-06-18 00:52 K08nfsserver -> ../init.d/nfsserver
lrwxrwxrwx 1 root root 12 2011-06-18 00:52 S14nfsserver -> ../init.d/nfsserver

# cd /etc/rc.d/rc5.d
# ls -l | grep nfsserver
lrwxrwxrwx 1 root root 12 2011-06-18 00:52 K08nfsserver ->../init.d/nfsserver
lrwxrwxrwx 1 root root 12 2011-06-18 00:52 S14nfsserver -> ../init.d/nfsserver

当你取消此service在某个runlevel的自动启动选项的设置的时候,对应的rc*.d目录下的symbollink文件也将被自动的删

例子中意思是当你在某个level设置为on的时候会同时在相应的rcn.d中生成K和S,但是我实际情况是on的level生成S,off对应的rcn.d中生成K,是互斥的。

现在的问题就是自己写好的服务脚本只能正常启动却不能关闭导致pid文件不能删除,我手动执行service abc start 和 service abc stop命令都是没有问题的。

总体上来说就是不太明白linux服务启动及关闭的时点问题,希望对此了解V友们指点下。

系统版本Centos6

4576 次点击
所在节点    问与答
3 条回复
mahone3297
2015-01-06 16:48:16 +08:00
怎么设置我不知道。。。我知道的是。。。
有rc0.d, rc1.d, rc2.d。。。目录,对应启动级别,就是你上面说的
然后里面有一些脚步,包含start和stop时的脚本。。。
然后这些脚本,会有数字,来保证脚本执行的顺序
rrfeng
2015-01-06 17:00:29 +08:00
rhel 里是 on 的 level 增加 S 脚本,无 K 脚本。off 的增加 K 脚本,无 S 脚本。

所以是:所有 level 里都有一个 init 脚本的链接,但是 on 的名为 S 开头,off 的为 K 开头。
izoabr
2015-01-06 22:54:28 +08:00
现在好像是systemd了吧,我是到目前还没搞明白那东西怎么闹,可怜我的Gentoo

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/159719

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX