centos7中修改inttab文件不起效的问题

关于centos7中修改inittab文件来改变默认运行级别无效的问题

首先要说说在centos6之前控制进程文件是/etc/inittab文件,这是因为之前的系统采用init进程(sys v init),根据/etc/rc.*d里面的内容(运行级别)来启动和控制服务,它是基于运行级别的进程;之后又诞生了upstart init,它又比sysvinit要高级一点,它是基于时间驱动的,也就是有事件,才会去打开相应的服务,这样就比直接全部打开所有服务要好的多了,加快了系统启动时间!它兼容sysv init。接下来centos7中采用了最新的系统管理软件systemd,它和init不一样,这样就导致我们修改inittab文件的时候没有奏效!

接着说说systemd中的“runlevel”与之前的运行级别的差异

运行级别(runlevel)是一个旧的概念。现在使用systemd引入了一个和运行级别相似的但不同的概念—目标(target)。它不像数字表示的运行级别,每个目标都有自己的名字和独特的功能,并且能够同时启用多个。一些目标会继承其他目标的服务,并开启新的服务。

Systemd用比sysvinit的运行级更为自由的target概念代替

第3运行级用multi-user.target代替

第5运行级用graphical.target代替

详细比较见下表

Systemd目标含义


Sysv运行级别


Systemd目标


解释


0


runlevel0.target,poweroff.target


中断系统(halt)


1


runlevel1.target,rescue.target


单用户模式


2,4


runlevel2.target,runlevel4.target,multi-user.target


用户自定义运行级别,通常识别为运行级别3


3


runlevel3,multi-user.target


多用户,字符界面


5


runlevel5,graphical.target


多用户,图形界面


6


runlevel6,reboot.target


重启


emergency


emergency.target


救援模式

runlevel3.target和runlevel5.target分别指向multi-user.target和graphical.target这样做的目的就是为了让以前的用户能很好的接受现在的改变,同时,现在的改变赋予了语义,根据名字就可以看出该级别下面能做什么和不能做什么了。

看看runlevel*都是软连接

[[email protected] ~]# ll/lib/systemd/system/runlevel?.target
lrwxrwxrwx. 1 root root 15 Mar  9 04:43 /lib/systemd/system/runlevel0.target ->poweroff.target
lrwxrwxrwx. 1 root root 13 Mar  9 04:43 /lib/systemd/system/runlevel1.target-> rescue.target
lrwxrwxrwx. 1 root root 17 Mar  9 04:43 /lib/systemd/system/runlevel2.target-> multi-user.target
lrwxrwxrwx. 1 root root 17 Mar  9 04:43 /lib/systemd/system/runlevel3.target-> multi-user.target
lrwxrwxrwx. 1 root root 17 Mar  9 04:43 /lib/systemd/system/runlevel4.target-> multi-user.target
lrwxrwxrwx. 1 root root 16 Mar  9 04:43 /lib/systemd/system/runlevel5.target-> graphical.target
lrwxrwxrwx. 1 root root 13 Mar  9 04:43 /lib/systemd/system/runlevel6.target-> reboot.target

接着试试使用命令切换运行级别(目标)

[[email protected] ~]#systemctl isolatemulti-user.target 切换到运行级别3
[[email protected] ~]#systemctl isolaterunlevel3.target 切换到运行级别3
[[email protected] ~]#systemctl isolategraphical.target 切换到运行级别5
[[email protected] ~]#systemctl isolaterunlevel5.target 切换到运行级别5

注意的是:runlevel还是可以使用,但是systemd不使用/etc/inittab文件,修改/etc/inittab文件不会更改默认的运行级别。所以严格的说不再有运行级别了。所谓默认的运行级别,指的就是/etc/systemd/system/default.target文件,查看该文件发现它是一个软连接

[[email protected] ~]# ll/etc/systemd/system/default.target
lrwxrwxrwx. 1 root root 36 Mar  9 05:14 /etc/systemd/system/default.target-> /lib/systemd/system/graphical.target
##发现它是一个连接到/lib/systemd/system目录下graphical.target的软连接,
##所以默认启动就是级别5图形界面。所以要修改默认的运行级别时,
##就不能再使用修改/etc/inittab的方法了,而是建立软连接的方法。

到重点了,修改默认的运行级别

方法一:设置默认启动为字符界面,创建一个3级别的目标,连接到默认启动的配置文件中去

#ln –sf /lib/systemd/system/multi-user.target   /etc/systemd/system/default.target

设置默认启动为图形界面,创建一个5级别的目标,连接到默认启动的配置文件中去

#ln –sf /lib/systemd/system/graphical.target   /etc/systemd/system/default.target

开机时,系统使用的配置文件是/etc/systemd/system/default.target,该文件默认是连接到

graphical.target文件(大致相当于原来的运行级别5)。

方法二:也可以执行systemctl命令,设置启动时默认进入文件模式或图像模式

[[email protected] ~]#systemctl enable multi-user.target         字符界面
[[email protected] ~]#systemctl enablegraphical.target  图形界面

该命令执行情况由systemctl显示:该方法当且仅当目标配置文件中有如下内容时有效:

[Install]

Alias=default.target

目前/lib/systemd/system/multi-user.target、/lib/systemd/system/graphcal.target文件中都有。

时间: 2024-10-07 19:27:03

centos7中修改inttab文件不起效的问题的相关文章

Centos7中修改Hostname的方法

一.Centos7中修改的方法: hostnamectl set-hostname <new hostname> 说明:centOS 7 里面修改hostname的方式有所改变,修改/etc/hosts和/etc/sysconfig/network两个文件已经不能生效. 使用的新命令是 : hostnamectl set-hostname name.

C#中修改Dll文件 (反编译后重新编译)

Dll文件生成后,如没有源代码,又要修改其中内容 可以用微软自带的ildasm和ilasm程序 先用ildasm将dll文件反编译成il文件 ildasm Test.dll /out=Test.il 会生成Test.res和Test.il两个文件 il文件可以用文本编辑器修改,要注意其中的语法 改完后再用ilasm将il文件重新编译成dll文件 ilasm /dll /res:Test.res Test.il /out:Test.dll 本人测试时因为ildasm和ilasm程序都是从网上下载来

net 编译报错:编辑器或项目正在尝试签出在内存中修改的文件,这将导致保存该文件

1,报错提示: 编辑器或项目正在尝试签出在内存中修改的文件,这将导致保存该文件. 在生成过程中保存文件是危险的,这可能会在将来导致不正确的生成输出. 是否仍然继续签出? 2,原因:licenses.licx属性设为了只读. 3,解决: a,搜索''licenses.licx',去掉只读属性; b,LicensesClear.exe放到项目根目录下,双击执行. 递归取消licenses.licx只读属性,源码 原文地址:https://www.cnblogs.com/qqhfeng/p/92947

CAD编辑器中修改CAD文件文字大小的办法

CAD绘图是一个复杂的过程,我们需要考虑到方方面面,其中出现的问题也不少,当我们想要修改CAD文字大小的时候该怎么办呢? 迅捷CAD编辑器一款集CAD查看.编辑.转换于一体的CAD编辑工具,我们可以借助于该软件改变CAD文字大小,方法如下: 1.运行迅捷CAD编辑器http://cad.xjpdf.com,在软件界面中打开要编辑的CAD文件,在左上角点击文件,切换到文件列表,点击打开,然后在弹出的文件夹中找到要编辑的CAD文件打开即可. 2.如果只是因为看不清文字想要把相应的文字内容大方,那么在

Mac系统hosts文件位置以及如何在Mac中修改hosts文件

在Windows系统中,通过修改Hosts文件可以达到屏蔽某些网站,服务器调试或者破解某些软件的作用.苹果Mac系统同样拥有Hosts文件,只是Hosts文件路径不同.很多人想修改hosts文件但是苦于对mac下的hosts文件的位置的不知. 一.首先要明白什么是hosts文件? hosts文件是一个用于储存计算机网络中各节点信息的计算机文件.这个文件负责将主机名映射到相应的IP地址.hosts文件通常用于补充或取代网络中DNS的功能.和DNS不同的是,计算机的用户可以直接对hosts文件进行控

Centos7 中修改sshd端口

日常工作中为了安全起见我们经常修改ssh默认端口 默认都为22 首先向centos5/6 一样 进去sshd服务的配置文件 vi /etc/ssh/sshd_config 找到#Port 22  去掉# 把22改成你想要的  我改成Port 2000  然后保存 2.重启sshd服务 systemctl restart sshd.service 3.semanage port -a -t ssh_port_t -p tcp 3333 将2000端口添加到SELinux systemctl sta

解决Android模拟器中修改host文件无效

目前网上教程如下三条: 1. 通过emulator -avd avdName -partition-size size启动模拟器2.通过adb root 和 adb remount 命令获得root权限.3.通过 adb pull /system/etc/hosts 命令将hosts文件转移到PC上,手动修改hosts,并且通过adb push将hosts文件再推送回去.仍然不起作用... 原因是回车换行符捣的鬼.解决方案: 执行上面1.2两条后,不执行第3条,(保证hosts文件里只有一行12

20190108在CentOS7中修改网卡名为 eth0

CentOS7 修改网卡为 eth0 一.对于已经安装好centos7系统的服务器 修改网卡配置文件mv ifcfg-eno16777728 ifcfg-eth0 先将配置文件重命名vim ifcfg-eth0 修改以下两个参数 GRUB 添加 kernel 参数vim /etc/sysconfig/grub 在末尾处添加 net.ifname=0#grub2-mkconfig -o /boot/grub2/grub.cfg 重定向 reboot 重启 验证: 二.也可在安装系统时添加 kern

centos7 docker 修改Nginx文件

1.docker 安装 nginx : docker安装Nginx还是很简单的,可以参考百度文章 ,或者参照docker安装mysql :https://www.cnblogs.com/jonrain0625/p/11306412.html 2.安装完后进入到docker容器: 执行命令:docker exec -it  容器id bash .  注意 ,容器必须是开启的才能进入. 3.以修改nginx 的index.html 为例: 1.进入index所在的目录 :cd usr/share/n