centos systemd units?centos7
大家好,如果您还对centos systemd units不太了解,没有关系,今天就由本站为大家分享centos systemd units的知识,包括centos7的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
RHEL7和CentOS 7都有哪些变化CentOS 7有什么不一样
一、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;echo$?
查看已启动的服务列表: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。
CentOS7下如何切换运行级别CentOS7下切换运行级别的方法
由命令行级别切换到窗口级别的命令未变:init 5或startx
由窗口级别切换到命令行级别的命令未变:init 3
新版本的运行级别都定义在/lib/systemd/system下:
[root@localhost~]# ls-ltr/lib/systemd/system/runlevel*.target
lrwxrwxrwx. 1 root root 16 9月 10 20:58/lib/systemd/system/default.target-> graphical.target
lrwxrwxrwx. 1 root root 13 9月 10 20:58/lib/systemd/system/runlevel1.target-> rescue.target
lrwxrwxrwx. 1 root root 15 9月 10 20:58/lib/systemd/system/runlevel0.target-> poweroff.target
lrwxrwxrwx. 1 root root 17 9月 10 20:58/lib/systemd/system/runlevel4.target-> multi-user.target
lrwxrwxrwx. 1 root root 17 9月 10 20:58/lib/systemd/system/runlevel3.target-> multi-user.target
lrwxrwxrwx. 1 root root 17 9月 10 20:58/lib/systemd/system/runlevel2.target-> multi-user.target
lrwxrwxrwx. 1 root root 16 9月 10 20:58/lib/systemd/system/runlevel5.target-> graphical.target
lrwxrwxrwx. 1 root root 13 9月 10 20:58/lib/systemd/system/runlevel6.target-> reboot.target
可以针对不同需要设置不同的运行级别:
如设置命令行级别(init 3)方法:
[root@localhost~]# ln-svf/lib/systemd/system/runlevel3.target/etc/systemd/system/default.target
或
[root@localhost~]# ln-svf/lib/systemd/system/multi-user.target/etc/systemd/system/default.target
或
[root@localhost~]#systemctl set-default multi-user.target
设置窗口级别(init 5)方法:
[root@localhost~]# ln-svf/lib/systemd/system/runlevel5.target/etc/systemd/system/default.target
或
[root@localhost~]# ln-svf/lib/systemd/system/graphical.target/etc/systemd/system/default.target
或
[root@localhost~]#systemctl set-default graphical.target
-----------------------------分割线-----------------------------
修改系统运行级别:
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文件。
-----------------------------分割线-----------------------------
如何查看当前运行级别?
旧的runlevel命令在systemd下仍然可以使用。可以继续使用它,尽管systemd使用‘target’概念(多个的‘target’可以同时激活)替换了之前系统的runlevel。
等价的systemd命令是systemctl list-units–type=target
CentOS7网络设置修复
服务器有两个网卡enp7s0和enp8s0
服务器需要通过enp8s0和互联网联通,互联网为笔记本转接
通过centos7界面修改ip,失败;
通过centos7的网络配置文件/etc/sysconfig/network-scripts/ifcfg-enp8s0修改ip设置
设置如下:
1.启动 service network start报错,通过journalctl-xe查看如下
-- Defined-By: systemd
-- Support:
--
-- Unit fprintd.service has begun starting up.
12月 29 19:31:12 crrchost dbus-daemon[851]: dbus[851]: [system] Successfully activated service'net.reactivated.Fprint'
12月 29 19:31:12 crrchost dbus[851]: [system] Successfully activated service'net.reactivated.Fprint'
12月 29 19:31:12 crrchost systemd[1]: Started Fingerprint Authentication Daemon.
-- Subject: Unit fprintd.service has finished start-up
-- Defined-By: systemd
-- Support:
--
-- Unit fprintd.service has finished starting up.
--
-- The start-up result is done.
12月 29 19:31:12 crrchost fprintd[6685]: Launching FprintObject
12月 29 19:31:12 crrchost fprintd[6685]:** Message: D-Bus service launched with name: net.reactivated.Fprint
12月 29 19:31:12 crrchost fprintd[6685]:** Message: entering main loop
12月 29 19:31:18 crrchost polkitd[835]: Operator of unix-session:1 successfully authenticated as unix-user:windfarm to gain TEMPORARY authorization for action org.freedesktop.systemd1.manage-units for system-bus
12月 29 19:31:18 crrchost systemd[1]: Starting LSB: Bring up/down networking...
-- Subject: Unit network.service has begun start-up
-- Defined-By: systemd
-- Support:
--
-- Unit network.service has begun starting up.
12月 29 19:31:18 crrchost network[6693]:正在打开环回接口: [ 确定 ]
12月 29 19:31:18 crrchost network[6693]:正在打开接口 enp7s0:
12月 29 19:31:24 crrchost network[6693]:正在确定 enp7s0的 IP信息...失败:不存在链接。检查电缆?
12月 29 19:31:24 crrchost network[6693]: [失败]
12月 29 19:31:24 crrchost network[6693]:正在打开接口 enp8s0: RTNETLINK answers: File exists
12月 29 19:31:25 crrchost network[6693]: [ 确定 ]
12月 29 19:31:25 crrchost network[6693]: RTNETLINK answers: File exists
12月 29 19:31:25 crrchost network[6693]: RTNETLINK answers: File exists
12月 29 19:31:25 crrchost network[6693]: RTNETLINK answers: File exists
12月 29 19:31:25 crrchost network[6693]: RTNETLINK answers: File exists
12月 29 19:31:25 crrchost network[6693]: RTNETLINK answers: File exists
12月 29 19:31:25 crrchost network[6693]: RTNETLINK answers: File exists
12月 29 19:31:25 crrchost network[6693]: RTNETLINK answers: File exists
12月 29 19:31:25 crrchost network[6693]: RTNETLINK answers: File exists
12月 29 19:31:25 crrchost network[6693]: RTNETLINK answers: File exists
12月 29 19:31:25 crrchost systemd[1]: network.service: control process exited, code=exited status=1
12月 29 19:31:25 crrchost systemd[1]: Failed to start LSB: Bring up/down networking.
-- Subject: Unit network.service has failed
-- Defined-By: systemd
-- Support:
--
-- Unit network.service has failed.
--
-- The result is failed.
12月 29 19:31:25 crrchost systemd[1]: Unit network.service entered failed state.
12月 29 19:31:25 crrchost systemd[1]: network.service failed.
12月 29 19:31:25 crrchost polkitd[835]: Unregistered Authentication Agent for unix-process:6669:319312(system bus name:1.263, object path/org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8)(d
3.systemctl status network.service查看如下:
● network.service- LSB: Bring up/down networking
Loaded: loaded(/etc/rc.d/init.d/network; bad; vendor preset: disabled)
Active: failed(Result: exit-code) since六 2018-12-29 18:38:17 CST; 1min 24s ago
Docs: man:systemd-sysv-generator(8)
Process: 909 ExecStart=/etc/rc.d/init.d/network start(code=exited, status=1/FAILURE)
12月 29 18:38:06 crrchost systemd[1]: Starting LSB: Bring up/down networking...
12月 29 18:38:06 crrchost network[909]:正在打开环回接口: [ 确定 ]
12月 29 18:38:06 crrchost network[909]:正在打开接口 enp7s0:
12月 29 18:38:12 crrchost network[909]:正在确定 enp7s0的 IP信息...失败:…?
12月 29 18:38:12 crrchost network[909]: [失败]
12月 29 18:38:17 crrchost network[909]:正在打开接口 enp8s0: [ 确定 ]
12月 29 18:38:17 crrchost systemd[1]: network.service: control process exi...=1
12月 29 18:38:17 crrchost systemd[1]: Failed to start LSB: Bring up/down n...g.
12月 29 18:38:17 crrchost systemd[1]: Unit network.service entered failed...e.
12月 29 18:38:17 crrchost systemd[1]: network.service failed.
Hint: Some lines were ellipsized, use-l to show in full.
1.参考网络方法停用NetworkManager,依旧报错
systemctl stop NetworkManager
systemctl disable NetworkManager
2.比对两个网卡的MAC地址和配置文件的MAC地址
a.查看mac地址配置,ipconfig
b.查看配置文件中的macd地址是否匹配,ifcfg-enp8s0和ifcfg-enp7s0,
按照网络方法增加一行HWADDR=ipconfig查询到的对应网卡MAC地址;
c.重启network服务依旧报错;
3.通过GUI界面查看网络,提示“系统的网络服务与此版本的网络管理器不兼容”
这与之前停掉NetworkManager有关,此处不表;
4.因为ifcfg-enp7s0实际上没有插网线,修正其配置文件如下:
ONBOOT=no
重新启动服务后网络正常;
5.检查网络
1.network和NetworkManager不同,通过界面和通过配置文件,可能会导致配置混乱,且NetworkManager有些程序不支持,需要停用;
2.BOOTPROTO=none虽然可以表示静态ip,但是如果要启用,必须设置其为
BOOTPROTO=static或BOOTPROTO=dhcp
3.一个网卡没哟被启用,也就是没有设置动态ip或静态ip,是无法被初始化的,不能设置ONBOOT=yes
In Centos7.0 disabling NetworkManager will leave a dhcp client running configured for NetworkManager. This causes the error message RTNETLINK answers: File exists when the network service is started.
The stale dhclient process has the additional"benefit" that when the lease expires your dhclientwill choke, since it cannot reach NetWorkManager, thus removing your IP address.
If you grep for it, you will see that it points to a NetWorkManager configuration file.
[root@host~]# ps-ef| grep dhc
root 1865 792 0 Apr28? 00:00:00/sbin/dhclient-d-sf\
/usr/libexec/nm-dhcp-helper-pf/var/run/dhclient-eno1.pid-lf\
/var/lib/NetworkManager/dhclient-c96e56d3-a4c9-4a87-85ca-93dc0ca268f2-eno1.lease\
-cf/var/lib/NetworkManager/dhclient-eno1.conf eno1
So what you can do is kill the dhclient and only then start your network service.