1.软文推荐

2.软文推荐

3.软文推荐

centos7与centos6从初始化技术,服务启动,开机启动文件等都有差别,这篇文章和大家分享一下centos7与centos6的服务管理对比。

1. sysvinit、upstart、systemd简介
/ CentOS 5 CentOS 6 CentOS 7 备注
sysvinit ? ? ? 第一代,传统,兼容最多(/etc/init.d/、/etc/rc.X)
upstart ? ? ? 第二代,形似systemd雏形(/etc/init)
systemd ? ? ? 第三代,配合cgroup,systemd完全接管整个系统(/usr/lib/systemd)
2. sysvinit、upstart、systemd常用命令
动作 sysvinit upstart systemd
查看 service mytest status initctl status mytest systemctl status mytest.service
启动 service mytest start initctl start mytest systemctl start mytest.service
关闭 service mytest stop initctl stop mytest systemctl stop mytest.service
强杀进程 kill -9 PID kill -9 PID systemctl kill mytest.service –signal=9
重启 service mytest restart initctl restart mytest systemctl restart mytest.service
重载 service mytest reload initctl reload mytest systemctl reload mytest.service
开机启动 chkconfig mytest on /etc/init/mytest.conf里配置start on runlevel [3] systemctl enable mytest.service
3. runlevel运行级别
运行级别 CentOS 6 CentOS 7
0 halt runlevel0.target -> poweroff.target
1 Single user mode runlevel1.target -> rescue.target
2 Multiuser, without NFS runlevel2.target -> multi-user.target
3 Full multiuser mode runlevel3.target -> multi-user.target
4 unused runlevel4.target -> multi-user.target
5 X11 runlevel5.target -> graphical.target
6 reboot runlevel6.target -> reboot.target
查看 cat /etc/inittab systemctl get-default
开机生效 编辑/etc/inittab systemctl set-default multi-user.target
立即切换 init 5 systemctl isolate graphical.target
4. 日志查询

CentOS 6: 手工在/var/log/messages、/var/log/dmesg、/var/log/secure中grep,麻烦且效率低

CentOS 7: 统一使用journalctl,可以使用多个因素匹配,比如时间段、服务名、日志级别等等。另外,systemd日志默认经过压缩,是二进制文件,无法直接查看

journalctl常用命令 作用 CentOS 6比
journalctl 所有日志,包含系统、内核等等 手动在对应日志文件中grep
journalctl –dmesg 查看当前开机后的内核日志 dmesg
journalctl –boot 查看当前开机后的日志 先查当前开机启动时间,然后cat /var/log/…
journalctl –boot=-1 查看上一次启动的日志 查询上次开机到当前开机之间时间,然后cat /var/log/…
journalctl –since=”2018-08-01 12:00:00″ 查看从指定时间开始到当前的日志 手动在日志里grep
journalctl –since=yesterday –until=today 查看昨天0-24点的日志 手动在日志里grep
journalctl -n 20 查看最后10行 tail -n 20
journalctl -f 实时滚动显示最新日志 tail -f
journalctl -e 直接翻到最后 tail
journalctl -u mytest.service 查看指定服务日志 先查询日志保存路径,然后再cat查看
journalctl -p 0 查看指定日志级别的日志,日志级别从0到7 通过syslog将不同级别的日志放到不同文件中
journalctl -u mytest.service -o json-pretty或-o verbose 查看每条日志详细信息(包含元信息)
journalctl –disk-usage 查看日志所在的磁盘空间 du -shx /var/log/messages等
5. 实现守护进程

CentOS 6

sysvinit需要自行实现 nohup & screen supervisor upstart和systemd类似,将程序运行在前台即可

CentOS 7

由systemd启动,将程序运行在前台即可 6. sysvinit、upstart、systemd例子

sysvinit

cat > /etc/init.d/mytest 

upstart

cat > /etc/init/mytest.conf 

systemd

cat > /usr/lib/systemd/system/mytest.service 
7. PID管理 sysvinit: 需要生成PID文件,用于后期关闭、重启等使用 upstart: 无需PID文件,upstart会记录主进程ID,子进程ID没有记录 systemd: 无需PID文件,所有进程ID由cgroup统一接管 8. 内置的资源限制

CentOS 6: 除了ulimit,没有其他限制进程资源的简便方法
CentOS 7: 除了ulimit,还支持部分cgroup限制,可对进程做内存限制和cpu资源限制等

[Service]
ExecStart=...
MemoryLimit=500M
CPUShares=100

另外,CentOS 7可以通过systemd-cgtop命令查看cgroup里的性能数据

9. 服务异常自动重启

upstart

start on runlevel [3]

description "mytest"

exec /root/mytest.sh
post-stop exec sleep 5
respawn
respawn limit unlimited

systemd

[Unit]
Description=mytest

[Service]
Type=simple
ExecStart=/root/mytest.sh
Restart=always
RestartSec=5
StartLimitInterval=0

[Install]
WantedBy=multi-user.target

上面2种方式均表示,无限次自动重启,每次重启前等待5秒

10. 写日志方式

CentOS 6: 自行输出到文件中,或通过syslog记录(如logger命令)

CentOS 7: 只要程序由systemd启动,只需将输出日志到标准输出或标准错误

建议centos7只将应用程序的一些元信息输出到标准输出或标准错误,比如启动成功、启动失败等等 不建议将业务日志输出到journal。因为journal中所有日志都存在一个文件中,会导致2个问题: 如果没有做日志持久化,则默认存在内存中,会导致最多一半的内存被占用 存储量很大,会导致查询其他日志很耗时 解决办法:输出到syslog,[Service]支持StandardOutput=syslog 11. 指定每条日志级别

CentOS 6: 通过syslog将不同级别的日志输出到不同文件

CentOS 7: 只需在输出的每一行开头加,比如

echo 'hello, emerg'
echo 'hello, alert'
echo 'hello, crit'
echo 'hello, err'
echo 'hello, warning'
echo 'hello, notice'
echo 'hello, info'
echo 'hello, debug'
12. systemd日志永久保存

systemd日志默认保存在内存中,因此当服务器重启后,就无法通过journalctl来查看之前的日志,解决方法:

mkdir -p /var/log/journal
systemctl restart systemd-journald

对于CentOS 6和CentOS 7的不同大家还有什么想补充的吗?可以在评论区留言啊。

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

本文来源:www.lxlinux.net/573.html,若引用不当,请联系修改。

相关文章 8

1

DediPath新春优惠:全场VPS主机5折,洛杉矶1Gbps不限流量独立服务器$39/月起 2分钟前

DediPath是一家成立于2017年的国外服务商,提供的产品包括VPS、Hybrid Servers、独立服务器租用等,数据中心可选美国洛杉矶、圣何塞、新泽西、...

2

什么是IPV6?IPV6服务器有什么优势?(什么是自然数) 4分钟前

IPv6是英文“Internet?Protocol?Version?6”(互联网协议第6版)的缩写,是互联网工程任务组(IETF)设计的用于替代IPv4的下一代IP协议,其地址数...

3

Cloudcone:1核/1G/35G/2T流量/1Gbps/洛杉矶MC/年付$14.2 7分钟前

Cloudcone家又上新优惠了,本次商家放出了几款特价是套餐,有便宜的,有大硬盘的,有大流量的,性价比非常高,商家成立于2017年,企业运...

4

腾讯云双十一活动 新老用户均可年度最低优惠(腾讯双11会员) 9分钟前

2019年的双十一到来,我们在感慨时间过的真快的时候,也看到各大电商平台憋足各种点子忽悠我们的钱包,又到一年购物季。不仅仅淘宝、...

5

搬瓦工:DC6机房最便宜CN2 VPS服务器补货,1核512M内存/500G流量,46.8美元/年 11分钟前

目前搬瓦工对DC6机房的限量版“CN2 GIA?LIMITED EDITION”vps服务器进行了补货,1核512M内存、1Gbps带宽、500G月流量,年付46.8美元。搬瓦工主打美国...

6

宝塔面板怎么屏蔽禁止国外ip访问?宝塔禁止国外/境外访问设置(宝塔面板是干啥的) 13分钟前

宝塔面板怎么屏蔽禁止国外ip访问? 有些小伙伴只做国内客户,因为不希望国外的人来访问站点,这些在国内的很多主机上都有相应的设置...

7

通过DRBD + Heartbeat 部署MySQL高可用 14分钟前

采用Heartbeat双机热备软件来保证数据库的高稳定性和连续性,数据的一致性由DRBD这个工具来保证。默认情况下只有一台mysql在工作,当主m...

8

中小企业一般做一个什么样类型的网站比较好(中小企业吗) 15分钟前

根据你需求,你看是你是偏向展示,还是销售产品,展示的话,就做一个企业官网就可以了,销售产品的话就做一个营销型网站或者商城网...