CentOS 7.0体验与之前版本的不同
RHEL7和CentOS7出来有一段时间了,拿出点时间研究下,有几个地方跟6和5系列相比改变比较大,估计不少童鞋有点不太习惯。下面简要举例说明改变比较大的要点:
一、CentOS的Services使用了systemd来代替sysvinit管理
1、systemd的服务管理程序:
systemctl是主要的工具,它融合之前service和chkconfig的功能于一体。可以使用它永久性或只在当前会话中启用/禁用服务。
systemctl可以列出正在运行的服务状态,
systemd-cgls以树形列出正在运行的进程,它可以递归显示控制组内容
2、如何启动/关闭、启用/禁用服务?
启动一个服务:systemctl start postfix.service
关闭一个服务:systemctl stop postfix.service
重启一个服务:systemctl restart postfix.service
显示一个服务的状态:systemctl status postfix.service
在开机时启用一个服务:systemctl enable postfix.service
在开机时禁用一个服务:systemctl disable postfix.service
查看服务是否开机启动:systemctl is-enabled postfix.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
说明:启用服务就是在当前“runlevel”的配置文件目录/etc/systemd/system/multi-user.target.wants/里,建立/usr/lib/systemd/system里面对应服务配置文件的软链接;禁用服务就是删除此软链接。
查看了/usr/lib/systemd/system 里的文件,语法跟旧版/etc/init.d/里的系统服务脚本完全不同了。
二、修改系统运行级别:
1、systemd使用比sysvinit的运行级更为自由的target替代。第3运行级用multi-user.target替代。第5运行级用graphical.target替代。runlevel3.target和runlevel5.target分别是指向 multi-user.target和graphical.target的符号链接。
可以使用下面的命令切换到“运行级别3 ”:systemctl isolate multi-user.target或systemctl isolate runlevel3.target
可以使用下面的命令切换到“运行级别5 ”:systemctl isolate graphical.target或systemctl isolate runlevel5.target
2、如何改变默认运行级别?
systemd使用链接来指向默认的运行级别。在创建新的链接前,可以通过下面命令删除存在的链接: rm /etc/systemd/system/default.target
默认启动运行级别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
systemd不使用/etc/inittab文件。
3、如何查看当前运行级别?
旧的runlevel命令在systemd下仍然可以使用。可以继续使用它,尽管systemd使用 ‘target’ 概念(多个的 ‘target’ 可以同时激活)替换了之前系统的runlevel。
等价的systemd命令是systemctl list-units –type=target
三、其他配置工具:
1、setup和ntsysv工具还是保留了,但是功能已大大减弱,以前ntsysv工具可以控制所有系统服务的自启动,现在只能控制少部分服务。
2、/etc/resolv.conf这个DNS配置文件没变。
3、/etc/sysconfig/network-scripts/ifcfg-ens192网卡配置文件名字和一些选项有所变化。
4、引导方式改用grub2引导,grub2有如下特点:1、模块化设计;2、支持多体系硬件架构;3、支持国际化多语言;4、独立内存管理;5、支持脚本语言。
附:systemd简介
systemd是Linux下的一种init软件,由Lennart Poettering带头开发,并在LGPL 2.1及其后续版本许可证下开源发布。其开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果,最终代替现在常用的System V与BSD风格init程序。
与多数发行版使用的System V风格init相比,systemd采用了以下新技术:
采用Socket激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能;
用cgroups代替PID来追踪进程,以此即使是两次fork之后生成的守护进程也不会脱离systemd的控制。
从设计构思上说,由于systemd使用了cgroup与fanotify等组件以实现其特性,所以只适用于Linux。
更详细的systemd介绍请参考:http://en.wikipedia.org/wiki/Systemd
四、其他发现:
初次启动
装完机后,开机进系统的界面换了,乍一看以为是两个内核,原来有一个是rescue选择,而且按e后,会发现所有的grub.conf的信息全出来了,好不容易找到内核启动的地方,写了个 1(要进单用户模式),然后进了rescue模式。
字符界面
进系统后,是图形界面,想进字符界面,结果找到/etc/inittab,发现几乎是个空文件,文件中提示想改runlevel的话,可以把/lib/systemd/system/runlevel*.target 软连到 /etc/systemd/system/default.target下(当然考过来,覆盖也行),试了一下还行,能改到字符界面runlevel3。
配置网络和主机名
然后,想配置网络,进/etc/sysconfig/network-script/一看,我靠,网卡改名了enp1s5,好有趣,配置完网络后改主机名, 到/etc/sysconfig/network去改名字,发现这个文件也是空的,按原6版本的去修改,重启后没效果,man了一下hostname, 发现7中改名要到/etc/hostname去改名字。
本地yum源和挂载
接着,想配置一个本地yum源,配上后要挂光盘,手动挂上了,然后直接echo“mount ......”到rc.local中,毕竟是启动执行脚本,重启之后竟然没挂上,进去rc.local中看了一下,7中竟然要手动的把chmod +x rc.local, 是的,要手动加执行权限,难道我之前装的6以前的系统中这个都要手动加执行权限,我不记得啊!!!! 当然,加了权限后,开机后启动执行了rc.local的mount命令。
LVM和xfs
后来,想着装一个lvm玩玩,于是啊就分区,格式化(特意格式化为了xfs),pv,vg,lv一步一步,都没问题,然后想着放大,缩小,这时出问题了,执行resize2fs时,怎么一直报superblock什么的出错,这是怎么回事,然后man resize2fs一下,发现这命令只支持ext的文件系统,我艹,那我装系统是怎么是lvm的,这个问题我还没解决,应该有解决方法。
dhcp和服务
接着,想着装一个dhcp玩玩,惊奇的发现所有dhcp的包装上之后,不能service dhcpd start,然后发现/etc/init.d/中竟然没一个dhcp类似的东西,毕竟6之前有dhcpd,dhcpd6,dhcrelay的,然后发现 /sbin/dhcpd有启动文件,难道,难道,以后的服务想service启,都要手动自己编?错了,是在/usr/lib/systemd/system/dhcpd.service,还要修改好多,然后加权限,执行service 服务 restart/stop。。。。。。可以,但是指向了systemctl restart/start/stop 服务.service
iptables
又发现iptables这次也不是作为一个服务在/etc/init.d/下面了,/sbin下有;
然后,然后,就没有然后了,或许,真的是或许,发现新东西,再在这个日志上更新吧,真的是或许。
对了,我还发现/etc/sysctl.conf也空了,想做个路由转发都要到/proc/sys/net下
CentOS 7.0体验与之前版本的不同的更多相关文章
- centos 7.0运行docker出现内核报错解决方法
目前我这里docker是运行在centos 7.0系统里,使用1.5版本docker,最近一台服务器总是不定期死机,通过查看日志发现属于内核bug导致,报错信息如下 1 2 3 4 5 6 7 8 9 ...
- CentOS 7.x编译安装Nginx1.10.3+MySQL5.7.16+PHP5.2 5.3 5.4 5.5 5.6 7.0 7.1多版本全能环境
准备篇 一.防火墙配置 CentOS 7.x默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.se ...
- 从CentOS 7.0升级到7.7版本
我平时都在VirtualBox上装虚拟机,方法是导入ova镜像文件,比如导入从网上下载的CentOS7-base.ova,该ova为CentOS 7.0版本,而现在最新版本为7.7,为此进入系统后第一 ...
- [转帖]CentOS 8.0.1905 和CentOS Stream(滚动发行)正式发布
CentOS 8.0.1905 和CentOS Stream(滚动发行)正式发布 https://zhuanlan.zhihu.com/p/84001292 还发现openssl 的 版本太高 不兼容 ...
- CentOS 7.0系统安装配置步骤详解
CentOS 7.0系统是一个很新的版本哦,很多朋友都不知道CentOS 7.0系统是怎么去安装配置的哦,因为centos7.0与以前版本是有很大的改进哦. 说明: 截止目前CentOS 7.x最新版 ...
- CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14
准备篇: CentOS 7.0系统安装配置图解教程 http://www.osyunwei.com/archives/7829.html 一.配置防火墙,开启80端口.3306端口 CentOS 7. ...
- centos 7.0 编译安装php 7.0.3
php下载页面 http://cn2.php.net/downloads.php 7.0.3多地区下载页面 http://cn2.php.net/get/php-7.0.3.tar.gz/from/a ...
- centos 7.0 安装nginx 1.9.10
可以参考以前安装成功的案例 centos 7.0 nginx 1.7.9成功安装过程 官网下载 http://nginx.org/en/download.html nginx下载位置 /usr/loc ...
- centos 7.0 nginx 1.7.9成功安装过程
centos 7.0根目录 的目录构成 [root@localhost /]# lsbin dev home lib64 mnt proc run srv tmp varboot etc lib me ...
随机推荐
- ubuntu Virtualbox菜单栏不见
ubuntu 装了Virtualbox 后,不知道怎么操作的导致顶部菜单栏不见啦, 网上查了下,我们看到开启/关闭 Scale Mode的快捷键都是 Ctrl C ,注意Ctrl是右边的那个不是左边那 ...
- 作业6 NABCD模型分析,产品Backlog
1.N(Need 需求): 随着生活水平的提高,每个家庭中都会有电脑和移动设备,可以更加快捷方便使用软件.以前孩子练习计算能力需要通做习题卷或老师出题目来进行,但现在只要通过这个四则运算的程序,可以自 ...
- c#部分---需要实例化的内容;
需要初始化的: 随机数类:初始化 实例化//不允许将初始化的语句放置在循环中//Random ran = new Random(); 时间值类:/初始化 实例化//DateTime dt = new ...
- Codeforces Round #132 (Div. 2)
A. Bicycle Chain 统计\(\frac{b_j}{a_i}\)最大值以及个数. B. Olympic Medal \(\frac{m_{out}=\pi (r_1^2-r_2^2)hp_ ...
- linux ssh免密码登录设置
ssh-keygen -t rsa 全部回车 生成密钥默认放在了/root/.shh中 打开它 cd /root/.ssh cp id_rsa.pub authorized_keys 免密码登录 现在 ...
- poj1270 拓扑序(DFS)
题意:给出将会出现的多个字母,并紧接着给出一部分字母的大小关系,要求按照字典序从小到大输出所有符合上述关系的排列. 拓扑序,由于需要输出所有排列,所以需要使用 dfs ,只要点从小到大遍历就可以实现字 ...
- VS2013远程调试功能
我跪了,我真的跪了. 实际证明这是不可行的. [开发机] Win10,64bits,VS2013 [目标机] Winxp VS2013的debug tool不能在xp上安装运行,卒! 如果有win7, ...
- 如何安装 VLFeat工具包到Linux (Ubuntu) 64_bit system matlab 中?
最近要提一个数据集的feature,想先用HOG特征做一个baseline,听师兄说VLFeat 是一个不错的工具包,就下载了试试,刚刚配置成功,网上各种搜索教程啊 但是都不行,最后还是硬着头皮看官网 ...
- 套接字I/O模型-WSAEventSelect(转载)
和WSAAsyncSelect类似,它也允许应用程序在一个或多个套接字上,接收以事件为基础的网络事件通知. 该模型最主要的区别是在于网络事件是由对象句柄完成的,而不是通过窗口例程完成. 事件通知 事件 ...
- Android Studio导入Project的方法
Android Studio到现在已经发展到0.8+的版本了,最近也在试着使用它,原因是多方面的,一个毕竟是未来的趋势,二则是github上越来越多的大牛开源项目都是基于Android Studio的 ...