day17 进程的管理

day17 进程的管理

学习的目标

  1. 了解进程和程序的关系
  2. 了解进程的特点
  3. 能够使用top 动态的查看进程信息
  4. 能够使用ps 静态的查看进程的信息
  5. 能够使用kill命令给进程发送信号
  6. 能够调整进程的优先级

先回顾昨天的知识

  • 一般命令的配置文件在/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服务,也是这样的流程

  1. 系统运行sshd 服务
  2. 通过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的更加美观

posted @ 2025-03-05 15:08  国家一级冲浪yzk  阅读(17)  评论(0)    收藏  举报