• Linux服务管理(Ubuntu服务管理工具sysv-rc-conf)(转)


    Linux运行级别

    Linux系统任何时候都运行在一个指定的运行级上,并且不同的运行级的程序和服务都不同,所要完成的工作和要达到的目的都不同,系统可以在这些运行级之间进行切换,以完成不同的工作。

    运行级别(Runlevel)指的是Unix或者linux等类Unix操作系统下不同的运行模式。

    运行级别通常分为7等,分别是从0到6,但如果必要的话也可以更多。

    例如在大多数Linux操作系统下一共有如下6个典型的运行级别:

    0 停机
    1 单用户,Does not configure network interfaces, start daemons, or allow non-root logins
    2 多用户,无网络连接 Does not configure network interfaces or start daemons
    3 多用户,启动网络连接 Starts the system normally.
    4 用户自定义
    5 多用户带图形界面
    6 重启

    查看当前系统的运行级别可以使用命令runlevel

    runlevel

    切换运行级别,执行命令:

    init [0123456Ss]

    ( 即在 init 命令后跟一个参数,此参数是要切换到的运行级的运行级代号,如:用init 0命令关机;用init 6命令重新启动。)

    更详细的Linux运行级别研究,参考:http://www.cnblogs.com/EasonJim/p/7163069.html

    Linux系统主要启动步骤

    1. 读取MBR的信息,启动Boot Manager,Windows使用NTLDR作为Boot Manager,如果您的系统中安装多个版本的Windows您就需要在NTLDR中选择您要进入的系统。Linux通常使用功能强大,配置灵活的GRUB作为Boot Manager。
    2. 加载系统内核,启动init进程,init进程是Linux的根进程,所有的系统进程都是它的子进程。
    3. init进程读取/etc/inittab文件中的信息,并进入预设的运行级别,按顺序运行该运行级别对应文件夹下的脚本。脚本通常以start参数启动并指向一个系统中的程序。通常情况下,/etc/rcS.d/目录下的启动脚本首先被执行,然后是/etc/rcN.d/目录。例如您设定的运行级别为3,那么它对应的启动目录为/etc/rc3.d/4. 根据/etc/rcS.d/文件夹中对应的脚本启动X Window服务器xorg,X Window为Linux下的图形用户界面系统。
    5. 启动登录管理器,等待用户登录,Ubuntu系统默认使用GDM作为登录管理器您在登录管理器界面中输入用户名和密码后,便可以登录系统。(您可以在/etc/rc3.d/文件夹中找到一个名为S13gdm的链接)

    详细的启动过程,参考:http://www.debianadmin.com/the-lniux-boot-process-explained.html

    Ubunto中的运行级别

    在Debian Linux中2-5这四个运行级别都集中在级别2上。这个级别也是系统预设的正常运行级别。(注:对于这些运行级别我们不必太过纠结与到底什么意思,只需要知道在Debian/Ubuntu(Ubuntu是Debian的分支)Linux中默认都是在级别(Runlevel)2启动的)

    在Debian Linux中,下列路径对应不同的运行级别。当系统启动时,通过其中的脚本文件来启动相应的服务。 

    /etc/rc0.d Run level 0 
    /etc/rc1.d Run level 1 
    /etc/rc2.d Run level 2 
    /etc/rc3.d Run level 3 
    /etc/rc4.d Run level 4 
    /etc/rc5.d Run level 5 
    /etc/rc6.d Run level 6 

    下面我们去/etc/目录下寻找这些目录,在终端中输入

    说明:对于以K开头的文件,系统将终止对应的服务; 对于以S开头的文件,系统将启动对应的服务;

    现在对于Debian/Ubuntu Linux的启动过程大家应该有所了解,总结以下:

    在/etc/rc0.d~rc6.d目录下存放的分别是运行在0~6个运行级时要启动的服务有关的文件,由于Ubuntu默认是在runlevel 2启动的,那么我们只需要修改rc2.d中的文件,从而禁止某些服务启动,例如apache2。

    回顾刚才/etc/rc2.d目录下的文件可以发现与apache2有关的文件是S91apache2。

    我们查看以下apache的文件属性:

    而之前简单介绍过以S开头的文件,系统将启动对应的服务。

    查找以下apache在其他运行级别下的状态:

    我们会发现apache在运行级别2、3、4之下都是开机启动。

    所以我们要做的是把S91apache2修改成以K******,但是我们并不知道应该修改成多少,这里我们需要借助一个管理工具进行管理,即sysv-rc-conf。

    sysv-rc-conf是一个服务管理程序,其它相似的软件有chkconfig、rcconf等。

    安装sysv-rc-conf

    在Ubuntu下用apt-get安装:

    sudo apt-get install sysv-rc-conf

    运行

    sudo sysv-rc-conf

    第一行service后面是运行级别,有1,2,3,4,5,0,6,S,与之前介绍的运行级别基本符合,最后一项S为单用户不配置网络接口或启动后台进程。

    图中打X的即表示运行在对应Runlevel时开机启动的服务,这里我们可以看到apache2在Runlevel2,3,4,均为开机启动。

    对应到之前/etc/rc2.d~/etc/rc5.d目录下均为S91apache2文件,再次验证了之前的内容。

    将光标移动到apache2那行的第2列,按空格进行将启动项反选,按Q退出之后配置即完成。 

    现在我们再来看一下/etc/rc2.d/目录下的内容:

    ls /etc/rc2.d

    现在已经出现了K09apache2文件,而之前的S91apache2文件不在了,到这里配置成功。

    重启之后查看apache服务运行状态

    service apache2 status 

    说明:其实上面的测试不太正确,我在Ubuntu 16.04的系统上测试了apache2的服务停止,只有把服务在全部运行级别上都不选择,才能开机不启动apache2,单独把2级别取消,而3~5级别的保持开启,是会启动apache2服务的;也就是说运行级别从小到大依次运行。也就是说运行到5级别时,就会经过2级别。而且,在Ubuntu 16.04的系统中,不再是以2为默认级别,如果使用runlevel输出级别,会出现N 5级别。

    关于为什么Ubuntu系统默认级别为2的研究,参考:http://www.cnblogs.com/EasonJim/p/7168190.html

    常见的系统服务信息

     1 acpi-support 高级电源管理支持
     2 acpid acpi 守护程序.这两个用于电源管理,非常重要
     3 alsa 声音子系统
     4 alsa-utils
     5 anacron cron 的子系统,将系统关闭期间的计划任务,在下一次系统运行时执行。
     6 apmd acpi 的扩展
     7 atd 类似于 cron 的任务调度系统。建议关闭
     8 binfmt-support 核心支持其他二进制的文件格式。建议开启
     9 bluez-utiles 蓝牙设备支持
    10 bootlogd 启动日志。开启它
    11 cron 任务调度系统,建议开启
    12 cupsys 打印机子系统。
    13 dbus 消息总线系统(message bus system)。非常重要
    14 dns-clean 使用拨号连接时,清除 dns 信息。
    15 evms 企业卷管理系统(Enterprise Volumn Management system)
    16 fetchmail 邮件用户代理守护进程,用于收取邮件
    17 gdm gnome 登录和桌面管理器。
    18 gdomap
    19 gpm 终端中的鼠标支持。
    20 halt 别动它。
    21 hdparm 调整硬盘的脚本,配置文件为 /etc/hdparm.conf。
    22 hibernate 系统休眠
    23 hotkey-setup 笔记本功能键支持。支持类型包括: HP, Acer, ASUS, Sony,Dell, 和 IBM。
    24 hotplug and hotplug-net 即插即用支持,比较复杂,建议不要动它。
    25 hplip HP 打印机和图形子系统
    26 ifrename 网络接口重命名脚本。如果您有十块网卡,您应该开启它
    27 inetd 在文件 /etc/inetd.conf 中,注释掉所有你不需要的服务。如果该文件不包含任何服务,那关闭它是很安全的。
    28 klogd 重要。
    29 linux-restricted-modules-common 受限模块支持。
    30 /lib/linux-restricted-modules/ 文件夹中的模块为受限模块。例如某些驱动程序,如果您没有使用受限模块,就不需要开启它。
    31 lvm 逻辑卷管理系统支持。
    32 makedev 创建设备文件,非常重要。
    33 mdamd 磁盘阵列
    34 module-init-tools 从/etc/modules 加载扩展模块,建议开启。
    35 networking 网络支持。按 /etc/network/interfaces 文件预设激活网络,非常重要。
    36 ntpdate 时间同步服务,建议关闭。
    37 pcmcia pcmcia 设备支持。
    38 powernowd 移动 CPU 节能支持
    39 ppp and ppp-dns 拨号连接
    40 readahead 预加载库文件。
    41 reboot 别动它。
    42 resolvconf 自动配置 DNS
    43 rmnologin 清除 nologin
    44 rsync rsync 守护程序
    45 sendsigs 在重启和关机期间发送信号
    46 single 激活单用户模式
    47 ssh ssh 守护程序。建议开启
    48 stop-bootlogd 在 2,3,4,5 运行级别中停止 bootlogd 服务
    49 sudo 检查 sudo 状态。重要
    50 sysklogd 系统日志
    51 udev & udev-mab 用户空间 dev 文件系统(userspace dev filesystem)。重要
    52 umountfs 卸载文件系统
    53 urandom 随机数生成器
    54 usplash 开机画面支持
    55 vbesave 显卡 BIOS 配置工具。保存显卡的状态
    56 xorg-common 设置 X 服务 ICE socket。
    57 adjtimex 调整核心时钟的工具
    58 dirmngr 证书列表管理工具,和 gnupg 一起工作。
    59 hwtools irqs 优化工具
    60 libpam-devperm 系统崩溃之后,用于修理设备文件许可的守护程序。
    61 lm-sensors 板载传感器支持
    62 mdadm-raid 磁盘陈列管理器
    63 screen-cleanup 清除开机屏幕的脚本
    64 xinetd 管理其他守护进程的一个 inetd 超级守护程序

    参考:

    http://blog.csdn.net/gatieme/article/details/45251389(以上内容转自此篇文章)

    http://www.linuxidc.com/Linux/2012-10/73123p2.htm

    http://baike.baidu.com/item/sysv-rc-conf(以上大部分内容来自百度百科)

  • 相关阅读:
    poj1703--Find them, Catch them
    poj2828--Buy Tickets
    POJ 2594 Treasure Exploration(Floyd+最小路径覆盖)
    HDU
    二分图的一些性质
    HDU
    POJ 1659 Frogs' Neighborhood (Havel定理构造图)
    HDU
    HDU
    2018 Multi-University Training Contest 1
  • 原文地址:https://www.cnblogs.com/EasonJim/p/7158499.html
Copyright © 2020-2023  润新知