九五从零开始的运维之路(其十一)

简介: (一)power on开机(二)POST开机自检,如果有问题会发出蜂鸣声,没有问题就加载bios程序(三)bios是基本输入输出系统,通过BIOS加载引导程序(四)boot启动顺序检查,启动第一启动顺序

前言

本篇将简述的内容:Linux系统下的系统程序与进程管理


一、启动流程

1.开机自检的流程

正常开机

(一)power on开机

(二)POST开机自检,如果有问题会发出蜂鸣声,没有问题就加载bios程序

(三)bios是基本输入输出系统,通过BIOS加载引导程序

(四)boot启动顺序检查,启动第一启动顺序

选择硬盘作为第一启动顺序

(五)然后找到硬盘的第一个扇区,读取MBR主引导记录,MBR中有一个grub2引导程序,是用来启动Linux系统的

(六)加载/boot里文件系统里的驱动

(七)运行/boot里的内核文件vmlinuz、initramfs

(八)启动systemd进程

#系统的第一个进程,是所有其他进程的父进程

(九)启动对应的运行级别的里的服务,我们一般是启动multi-user多用户模式

(十)启动相应运行级别的的服务,比如/etc/rc.local以及/etc/fstab文件

(十一)然后进入login登录,用户输入用户名和密码以后,Linux系统会自动进入/etc/passwd文件和/etc/shadow文件里验证用户名和密码是否正确

(十二)验证成功之后,运行/etc/profile和 /etc/bashrc 全局配置(所有验证成功的用户都会加载),再运行用户家目录下的初始化文件, /.bash_profile、/.bashrc 局部配置(只有用户本身可以加载)


二、管理机制

1.service命令

Linux6及之前老版本系统

语法

service 服务名称 服务操作类型

服务启停脚本存储目录:

/etc/init.d/


2.systemd命令

Linux7及之后的新版本系统

语法

systemctl 服务操作类型 服务名称

服务启停脚本存储目录:

/usr/lib/systemd/system


三、运行级别

查看运行级别的命令

runlevel

init

systemctl:

systemctl get-default

查看默认运行级别

systemctl set-default 运行级别名称

查看默认运行级别


四、故障处理

1.遗忘密码,root密码修复

使用修改grub参数方法


(一)启动系统后,在grup界面按e进入编辑模式
(二)Linux 16 的那一行,将 ro 改为 rw init=/sysroot/bin/sh
(三)Ctrl+x
(四)chroot /sysroot
(五)修改root用户密码
(六)passwd
或者echo "密码" |passwd --stdin root
(七)touch /.autorelabel
#自动识别label标签
#不创建密码修改不生效
(八)exit
(九)reboot


2.文件系统损坏

模拟故障:dd if=/dev/zero of=/dev/sdb1 bs=512 count=4

(一)centos7下的XFS文件系统修复:


umount /dev/sdb1
xfs_repair /dev/sdb1


(二)centos7下的ext文件系统修复:


umount /dev/sdb1
fsck -y -t ext4 /dev/sdb1


3.grub引导故障

故障模拟

mv /boot/grub2/grub.cfg /grubbackup ; reboot


修复(手动引导操作系统)

(一)grub>ls #查看磁盘分区信息,找到boot分区

(二)grub>insmod xfs

(三)grub> set root=(hd0,msdos1) (----> 这个为你上一步中找到的boot分区)

(四)grub> linux16 /vmlinuz-xxxx root=/dev/mapper/centos-root

(五)grub> initrd16 /initramfs-.xxxxx.img

(六)grub> boot

(七)将备份好的gurb文件拷贝到/boot/grub2/目录中。

或者 在没有备份grub的情况下: grub2-mkconfig --output /boot/grub2/grub.cfg 重新生成grub


4.磁盘资源耗尽

(一)磁盘空间不足

清理磁盘或者添加新磁盘


(二)inode节点耗尽

查看磁盘inode节点数量:df -i

删除无用文件


(三)预防磁盘资源耗尽的最好办法

进行磁盘配额


五、程序与进程的区别

程序:静态代码,存储在硬盘等介质中

进程:程序运行后在CPU及内存中运行的动态代码;父进程与子进程;


六、程序与进程操作

1.查看进程

(一)ps aux命令

ps aux,静态显示正在内存中运行的进程信息


USER PID %CPU %MEM VSZ RSS TTY STAT STARTTIME COMMAND

用户 进程号 %CPU 内存占比 虚拟内存 固定内存占用 连接终端 状态 开始时间 进程运行的命令

状态:

S:sleep休眠进程
  s:表示有很多子进程,表示父进程
  R:正在工作的进程
  T:已经停止的进程
  Z:僵尸进程,zombie,会占用系统资源,主要占用内存资源
  <    high-priority (not nice to other users)
  N    low-priority (nice to other users)
  L    has pages locked into memory (for real-time and custom IO)
  s    is a session leader
  l    is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
  +    is in the foreground process group


(二)ps -elf命令

ps -elf,属于当前登录的所有进程信息


F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD

标识 状态 用户ID 进程ID 父ID CPU 优先权 N优先权修正 内存位置 内存占比 运行 开始时间 TT终端 占用CPU时间 命令

(三)pgrep 命令

pgrep ,进程筛选

选项

-o:显示找到的最小进程号

-n:显示找到的最大进程号

-l:显示进程名

-p:指定父进程

-g:指定进程组

-t:指定开启的终端

-u:指定进程有效用户

案例

pgrep -l httpd -u apache


(四)pstree命令

pstree 显示进程树


-a:显示完整信息
-u:显示UID
-p:显示PID号


(五)top命令

top,动态显示进程信息


top - 19:40:26 up 2:34, 5 users, load average: 0.42, 0.22, 0.16

系统当前时间;已经运行了16天21小时,1个用户登录;系统1/5/15分钟之内的平均负载

Tasks: 209 total, 2 running, 207 sleeping, 0 stopped, 0 zombie

Tasks(总进程数是145);2个正运行的进程;143个睡眠的进程;0个停止;0个僵尸进程

%Cpu(s): 14.0 us, 3.8 sy, 0.0 ni, 82.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

CPU(用户控件占用CPU的百分比是99.8%),内核占用CPU0.1%;0.0%ni[用户进程空间内改变过优先级的进程占用CPU百分比];0.2%id[空闲CPU百分比], 0.0%wa[等待输入输出的CPU时间百分比]

KiB Mem : 997956 total, 73544 free, 732792 used, 191620 buff/cache

Mem(内存)总大小是4G;2.4G被使用;1.6G空闲;158M作为内核缓存(buffer:写入缓冲区)

KiB Swap: 2097148 total, 1904892 free, 192256 used. 71360 avail Mem

Swap(交换分区)总大小5G;用了56k;其余闲置;2G作为读取缓存(cached:CPU刚使用的数据)

2.终止进程

Ctrl+C #终止前台进程

kill 进程号 #终止后台进程;-u指定用户

kill 'pgrep firefox' #不关心进程号直接杀死firefox

kill -9 进程号 #强制杀死

pkill 名字 #按照进程名杀死进程

killall httpd #使用进程名杀死一组进程;-l不区分大小写;-u指定杀死用户的进程


3.前台进程与后台进程

前台进程:在终端中直接运行的程序,影响当前终端的使用

后台进程:在后端运行的程序,不影响当前终端使用

前台进程切换成后台进程:firefox &


查看切换到后台的进程信息:

jobs [-l  显示PID]
[1]+  运行中               firefox &


jobNumber 状态 进程名


后台进程调到前台进程:fg jobNumber

暂停前台进程:Ctrl+z

将暂停进程直接调到后台执行:bg jobNumber


总结

总的来说,Linux系统下的系统程序与进程管理是操作系统中至关重要的一部分。了解和掌握进程管理的相关知识和命令,能够帮助用户有效地监控和管理系统中的进程,提高系统的稳定性和性能。

目录
相关文章
|
11月前
|
运维 Java 应用服务中间件
九五从零开始的运维之路(其十九)
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。 Tomcat虚拟主机是通过linux或windows操作系统下进行独立运行的一个网站发布容器,他是一种在单一主机或主机群上,实现多网域服务的方法,可以运行多个网站或服务的技术。
78 0
|
11月前
|
SQL 运维 关系型数据库
|
11月前
|
运维 关系型数据库 MySQL
九五从零开始的运维之路(其三十五)
MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点的问题。 MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。
66 2
|
11月前
|
监控 Linux 网络安全
Linux系统下的keepalived双机热备
在一个 LVS 服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但 是对外表现为一个虚拟 IP,主服务器会发送 VRRP 通告信息给备份服务器,当备份服务器收不到 VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟 IP,继续提供服务,从而保证了高可用性。
149 0
|
11月前
|
运维 负载均衡 算法
九五从零开始的运维之路(其三十六)
(一)四层负载均衡器 四层负载均衡器也称为 4 层交换机,主要通过分析 IP 层及 TCP/UDP 层的流量实现基于 IP 加端口的负载均衡,如常见的 LVS、F5 等;
59 0
|
11月前
|
存储 缓存 NoSQL
九五从零开始的运维之路(其三十二)
本篇将简述的内容:Linux系统下的Redis基础
67 0
|
11月前
|
存储 运维 Linux
九五从零开始的运维之路(其三十一)
计划任务是在指定的时间间隔内自动执行的任务。在Linux系统中,常用的计划任务工具是crond(cron daemon)。用户可以通过创建计划任务来定期执行指定的命令或脚本。
60 0
|
11月前
|
存储 运维 关系型数据库
九五从零开始的运维之路(其二十九)
数据库备份是指将数据库中的数据、表格、视图、存储过程、触发器等信息备份到另一个地方,以便在数据库丢失或损坏时进行恢复。数据库备份是数据库管理中必不可少的一项工作,通过备份可以保护数据库中的数据和业务
70 0
|
11月前
|
运维 关系型数据库 MySQL
九五从零开始的运维之路(其二十八)
数据库用户权限管理是数据库系统中非常重要的一个方面,它用于控制不同用户访问和操作数据库的权限范围。数据库用户权限管理可以保护敏感数据和数据库结构,确保只有被授权的用户才可以操作和使用数据库,防止数据被修改或泄露,并最大程度地保证数据库的安全。为了保护数据库的安全性,合理管理MySQL服务用户的权限是至关重要的。
50 0
|
11月前
|
存储 SQL 运维
九五从零开始的运维之路(其二十七)(1)
排序查询:排序查询是通过SQL查询语句将所查询的结果按照指定的排序方式排列 升序(默认):ASC
160 0