day17 进程的管理
day17 进程的管理
学习的目标
- 了解进程和程序的关系
- 了解进程的特点
- 能够使用top 动态的查看进程信息
- 能够使用ps 静态的查看进程的信息
- 能够使用kill命令给进程发送信号
- 能够调整进程的优先级
先回顾昨天的知识
- 一般命令的配置文件在/etc下
昨天我们学习啦防火墙的服务和定时服务
1.先看状态在去启动
systemctl status firewalld
systemctl restart firewalld
systemctl list-unit-files | grep firewalld
1.先理解服务的意思,服务就是你安装软件的名字
2.服务就是一个软件的程序,会提供可以用的命令,去操控这个软件
3.firewalld 服务提供的命令是 firewall-cmd
我最近学习啦哪些服务
例如:
crond.service 提供的命令是 (crontab)
ntpd.service (ntpdate)
firewalld.service (firewall-cmd)
nginx
[root@local ~]# which sshd
/usr/sbin/nginx
sshd
[root@local ~]# which sshd
/usr/sbin/sshd
- 一般我们是关闭防火墙服务
systemctl stop firewalld
但在centos7系统中对防火墙的策略的管理的命令但是最终还是生成iptables 的规则
所以说对于firewalld 我们是不怎么用的
最终生成的iptables的规则
↓
查看系统的所有的规则 iptables -L (list)
↓
清空防火墙的所有的规则 iptables -F
↓
停止防火墙的服务 systemctl stop firewalld
↓
禁止开机自启 systemctl disabe firewalld
定时任务 crontab
- 定时任务的作用 , 在什么时间做什么事
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
[root@local ~]#
-
简单来说
* * * * * command 分 时 日 月 周 -
最后就是黑白名单啦
黑名单 是一个文件用把用户名写上去即可 [root@local ~]# vim /etc/cron.deny
Linux 资源的管理分为5个部分
1. 进程资源的管理
2.内存资源的管理
3.cpu的负载压力
4.磁盘的资源管理
5.网络资源的管理
我们学习第一个进程资源的管理
- 什么是进程管理器
![]()
什么时进程 , 线程
- 进程是资源的单位 (
包公头) - 线程是工作的单位(
工人)
什么是父进程,儿子进程
[root@local ~]# ps -ef | grep 'bash'
root 837 1 0 13:27 ? 00:00:00 /bin/bash /usr/sbin/ksmtuned
root 2320 2188 0 13:27 ? 00:00:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "env GNOME_SHELL_SESSION_MODE=classic gnome-session --session gnome-classic"
root 2841 2831 0 13:27 pts/0 00:00:00 bash
root 3014 2841 0 13:29 pts/0 00:00:00 bash
root 3338 3334 0 13:47 pts/1 00:00:00 -bash
root 3876 3338 0 14:23 pts/1 00:00:00 grep --color=auto bash
[root@local ~]#
- 从上往下看,我将一步一步的解释
root 是当前的进程号
837 是当前的进程号 , 1 这个父进程的id 后面是时间 和执行文件的位置
1 号是Linux系统本身 都是Linux创建的1号,父进程,创建的一堆的儿子进程,可以在有儿子
我们所登录的sshd服务,也是这样的流程
- 系统运行sshd 服务
- 通过ssh客户端命令,都是链接这个服务,产生一堆的子进程而已
通过命令,查看他们的父子关系
也可以查看他们的id号
理解sshd的启动进程的关系

ps -ef 结果看到的是意思是
执行的用户 当前进程的id 父亲的id 进程的时间 进程执行脚本
流程如下:
一号进程 > sshd 服务 > ssh 连接这个服务 > /bin/bash >后缀打开的所有的命令
理解你是如何登录了linux,以及后续的命令执行,进程关系
linux系统启动产生的 1号进程
↓
运行了sshd服务,xxx进程
↓
ssh远程连接,xxx进程
↓
/bin/bash 进程,xxx进程
↓
后续各种命令 ,xxx进程,命令1,命令2,命令3
# 打开3个ssh会话窗口,一个用于查看进程,2个用于 使用vim命令操作,用ps,查看他们的父子关系
下面是孤儿进程,僵尸进程
- 孤儿进程
- 父进程由于某原因挂了,代码写的不好,导致生成的一堆儿子进程,没有父亲了,成为了孤儿
- 系统有一个1号进程,等于是一个福利院,去收养这些孤儿进程(1号进程会去接替,管理这些孤儿进程的数据)你就能看到,这些孤儿进程,的ppid,就成了1号进程了。
- 孤儿进程释放后,释放执行的相关文件,数据,以及释放进程id号(系统id号是有固定的数量)
看到如下进程状态,就是僵尸进程
就是儿子进程挂掉了 ,父进程不知道 特别例如[python] <defunct>
[root@167 ~]# ps -ef|grep 30394
root 30394 30317 0 11:57 pts/1 00:00:00 python jiangshi.py
root 30395 30394 0 11:57 pts/1 00:00:00 [python] <defunct>
还可以用top命令去看,有几个僵尸进程
下面是管理进程的一堆命令
- ps -ef
- ps aux
下面是top 命令

top - 当前时间 机器运行的时间 几个用户 平均负载
任务 特别是zombie 是僵尸数量
cpu 的一系列的参数
htop 命令是top的更加美观


浙公网安备 33010602011771号