V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
TFNotGiven
V2EX  ›  问与答

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

  •  
  •   TFNotGiven · 2015-01-06 16:39:14 +08:00 · 4385 次点击
    这是一个创建于 3404 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天自己在/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

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

    所以是:所有 level 里都有一个 init 脚本的链接,但是 on 的名为 S 开头,off 的为 K 开头。
    izoabr
        3
    izoabr  
       2015-01-06 22:54:28 +08:00
    现在好像是systemd了吧,我是到目前还没搞明白那东西怎么闹,可怜我的Gentoo
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   832 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 19:35 · PVG 03:35 · LAX 12:35 · JFK 15:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.