编译自:https://www . 2 day geek . com/how-to-enable-or-disable-services-on-boot-in-Linux-using-chkconfig-and-system CTL-command/
作者:Prakash Subramanian
译者:way-ww
对于Linux管理员来说,这是一个重要(精彩)的话题,所以每个人都必须知道并练习如何更有效地使用它们。
在Linux中,无论何时安装任何带有服务和守护进程的包,系统都会在默认情况下添加这些服务的初始化和systemd脚本,但此时它们并未启用。
我们需要手动打开或关闭这些服务。Linux中有三个著名的初始化系统一直在使用。
什么是初始化系统?
在基于Linux/Unix的操作系统上,init(初始化的简称)是内核引导系统引导过程中启动的第一个进程。
init的进程id (pid)是1,除非系统关闭,否则它将始终在后台运行。
Init首先根据/etc/inittab文件确定Linux的运行级别,然后根据运行级别在后台启动所有其他进程和应用程序。
在启动init之前,BIOS、MBR、GRUB和内核程序开始作为Linux引导程序的一部分工作。
以下是可以在Linux中使用的运行级别(从0到6的七个运行级别):
0:关机1:单用户模式2:多用户模式(没有NFS)3:完全的多用户模式4:系统未使用5:图形界面模式6:重启
以下是Linux系统中最常用的三种初始化系统:
System V(Sys V)Upstartsystemd什么是 System V(Sys V)?
System V(Sys V)是第一个也是传统的类Unix系统的初始化系统。Init是内核引导系统引导过程中的第一个启动程序,是所有程序的父进程。
大多数Linux发行版最初使用传统的初始化系统System V(Sys V)。在过去几年中,已经发布了几个初始化系统来解决标准版本中的设计限制,如launchd、服务管理工具、systemd和Upstart。
然而,systemd已经被几个主要的Linux发行版所采用,以取代传统的SysV初始化系统。
什么是 Upstart?
Upstart是基于事件的/in/init守护进程的替代方案。它在系统启动期间处理任务和服务的启动,在系统运行期间监视它们,并在系统关闭时关闭它们。
它最初是为Ubuntu设计的,但它也可以完美地部署在所有其他Linux系统中,以取代古老的system-V。
Upstart在Ubuntu 14.10到Ubuntu 14.10以及基于RHEL 6的系统中使用,之后被systemd取代。
什么是 systemd?
Systemd是一个新的初始化系统和系统管理器,在所有主要的Linux发行版中都使用它来取代传统的SysV初始化系统。
systd与SysV和L初始化脚本兼容。它可以直接代替SysV初始化系统。Systemd是内核启动的第一个程序,它的PID是1。
Systemd是所有程序的父进程,Fedora 15是第一个用systemd代替upstart的发行版。Systemctl用在命令行上,是管理systemd的守护进程/服务的主要工具,比如:(启动、重启、关闭、启用、禁用、过载、状态)。
Systemd使用。服务文件而不是bash脚本(由SysVinit使用)。Systemd将所有守护进程添加到cgroups中进行排序。您可以通过浏览/cgroup/systemd文件来查看系统级别。
如何使用 chkconfig 命令启用或禁用引导服务?
chkconfig实用程序是一个命令行工具,允许您在指定的运行级别启动选定的服务,并列出所有可用的服务及其当前设置。
此外,它允许我们在启动时启用或禁用服务。前提是您有超级管理员权限(root或sudo)来运行这个命令。
所有服务脚本都位于文件/etc/rd.d/init.d中。
如何列出运行级别中所有的服务
– list参数将显示所有服务及其当前状态(启用或禁用服务的运行级别):
# chkconfig – list
网络管理器0:关闭1:关闭2:打开3:打开4:打开5:打开6:关闭
abrt-ccpp 0:关1:关2:关3:开4:关5:开6:关
abrtd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
acpid 0:关1:关2:开3:开4:开5:开6:关
atd 0:关1:关2:关3:开4:开5:开6:关
auditd 0:关1:关2:开3:开4:开5:开6:关
。
。
如何查看指定服务的状态
如果要在运行级别检查服务的状态,可以使用以下格式来匹配所需的服务。
例如,我想在运行级别检查auditd服务的状态。
# chkconfig – list| grep auditd
auditd 0:关1:关2:开3:开4:开5:开6:关
如何在指定运行级别中启用服务
使用- level参数以指定的运行级别启用服务。下面显示了如何在运行级别3和运行级别5启用httpd服务。
# chkconfig -级别35 httpd打开
如何在指定运行级别下禁用服务
– level参数还用于在指定的运行级别禁用服务。下面显示httpd服务在运行级别3和运行级别5被禁用。
# chkconfig-35级httpd关闭
如何将一个新服务添加到启动列表中
add参数允许我们向启动列表中添加任何新的服务。默认情况下,新添加的服务将在运行级别2、3、4和5自动启动。
# chkconfig -添加nagios
如何从启动列表中删除服务
您可以使用- del参数从启动列表中删除服务。下面显示了如何从启动列表中删除Nagios服务。
# chkconfig – del nagios
如何使用 systemctl 命令启用或禁用开机自启服务?
Systemctl在命令行上使用。是管理systemd的守护进程/服务的基本工具,比如:(启动、重启、关闭、启用、禁用、过载、状态)。
所有服务创建的单元文件与/etc/systemd/system/相同。
如何列出全部的服务
使用以下命令列出所有服务(包括启用的和禁用的)。
# system CTL list-unit-files-type = service
单元文件状态
arp-ethers .服务已禁用
auditd.service已启用
autovt@。启用服务
blk-可用性。服务已禁用
brandbot.service static
chrony-dnssrv@。服务静态
慢性等待服务已禁用
启用的服务
云配置服务已启用
云-最终服务已启用
cloud-init-local.service已启用
cloud-init.service已启用
console-getty.service已禁用
控制台-shell.service已禁用
container-getty@。服务静态
cpupower.service已禁用
crond.service已启用
。
。
列出了150个单位文件。
使用以下格式匹配要通过正则表达式查看的服务的当前状态。下面是使用systemctl命令查看httpd服务的状态。
# system CTL list-unit-files-type = service | grep httpd
httpd.service已禁用
如何让指定的服务开机自启
使用以下格式的systemctl命令来启用指定的服务。启用该服务将创建一个符号链接,如下所示:
# systemctl启用httpd
已创建从/etc/systemd/system/multi-user . target . wants/httpd . service到/usr/lib/systemd/system/httpd . service的符号链接。
运行以下命令确认该服务是否再次启用。
# systemctl已启用httpd
使能够
如何禁用指定的服务
运行以下命令禁用该服务将删除您在启用该服务时创建的符号链接。
# systemctl禁用httpd
已删除symlink/etc/systemd/system/multi-user . target . wants/httpd . service。
运行以下命令确认该服务是否再次被禁用。
# systemctl已启用httpd
有缺陷的
如何查看系统当前的运行级别
使用systemctl命令确认系统的当前运行级别。runlevel命令仍然可以在systemd下工作,但是运行级别是systemd历史遗留下来的概念。所以我建议您使用所有的systemctl命令。
我们目前处于运行级别3,相当于下面显示的multi-user.target。
# system CTL list-units-type = target
单位负荷活动子描述
基本。目标加载主动主动基本系统
cloud-config.target已加载主动主动云配置可用性
cryptsetup.target加载了活动的活动本地加密卷
getty.target加载了活动的活动登录提示
local-fs-pre.target加载的活动活动本地文件系统(pre)
local-fs.target加载了活动的活动本地文件系统
多用户目标负载主动主动多用户系统
网络-在线。目标加载的活动活动网络在线
网络预目标加载主动主动网络(预)
网络。目标加载主动主动网络
paths.target加载的活动活动路径
remote-fs.target加载了活动的活动远程文件系统
slices.target加载的活动活动切片
sockets.target加载的活动活动套接字
swap.target加载的活动活动交换
sysinit.target已加载主动主动系统初始化
timers.target加载的活动活动计时器
via:https://www . 2 day geek . com/how-to-enable-or-disable-services-on-boot-in-Linux-using-chkconfig-and-system CTL-command/
作者:Prakash Subramanian主题:lujun9972译者:way-ww校对:wxy
本文由LCTT原创,并由Linux中国提供荣誉。
点击“了解更多”可访问文内链接
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。