进程和计划任务管理

目录:
 

程序和进程的关系

程序:
保存在硬盘、光盘等介质中可执行代码和数据
静态保存的代码
进程:
在CPU
进程具有的特征:
动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的;
并发性:任何进程都可以同其他进程一起并发执行;
独立性:进程是系统进行资源分配和调度的一个独立单位;
结构性:进程由程序、数据和进程控制块三部分组成。
 
进程是存在内存当中,有生命周期
0
 
pstree可以看到进程状态数
0
//vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.91.100
NETMASK=255.255.255.0
GATEWAY=192.168.91.2
DNS1=8.8.8.8//
 
内核功能:进程管理、内存管理、文件系统、网络功能、驱动程序、安全功能等
 
如何看线程:cat /proc/pid号/status 用pstree也可以
0
 

进程使用内存的问题:

内存泄漏Memory Leak:
程序中用malloc或new申请了一块内存,但是没有用free或delete将内存释放,导致这块内存一直处于占用状态
内存溢出:
程序申请了10M的空间,但是在这个空间写入10M以上字节的数据,就是溢出。
内存不足:
没有足够的空间释放
 
进程
telnet 远程链接 telnet 192.168.。。。
守护进程:某程序没启动,他的守护进程等有东西找这个程序,守护进程会喊他启动
 
 

查看当前终端

ps aux ps -elf
选项
a 所有终端
u 用户信息
x 更详细
k 倒叙 ps aux k -%cpu -倒叙 以cpu利用率来排序
-e:显示系统内的所有进程信息。
-l:使用长(Long)格式显示进程信息。
-f:使用完整的(Full)格式显示进程信
ps au
%MEM内存占用率 VSZ:虚拟内存 RSS:物理内存 STAT进程状态
0
 
0
STAT进程状态:
-D
-R
-Z
僵尸进程:进程结束,父进程会 回收资源 子进程如果出现意外关闭,父进程无感知就不会收回资源
 
elf
PRI优先级(无法修改,系统已经设置好的)
NI优先级(人为设置,范围是-20到+19)
PRI(最终值)=PRI优先级+NI优先级
NI值越小,PRI越小,优先级就越高
renice -n -200 2994 2994是puid
0
 
面试题:找到未知执行的程序(遇到挖矿病毒)
用ps找到占用率高的文件,然后杀死他
0
-i是解锁了,然后删
如果还不行就建1个同名文件
0
 

top命令

查看动态的进程排名信息(相当于windows的任务管理器)
0
cpu的利用率在哪一行? 第三行
us5分钟 sy10分钟 ni15分钟
q退出
选项
-d 指定刷新几次,默认3秒
-b 全部显示
 

pgrep命令

根据特定条件查询进程PID信息
选项
-l 显示进程名
-u 指定特定用户(a、l在u前面) pgrep -u lisi
-a: 显示完整格式的进程名
0
 

pstree命令

以树形结构列出进程信息
-p 显示pid
0
 

lsof

列出系统中已经被打开的文件
0
 

监控系统资源vmstat:

系统资源的使用状况,以及查看当前系统中到底是哪个环节最占用系统资源,就可以使用 vmstat 命令。
vmstat [-a] [刷新延时 刷新次数]
vmstat 1 3 使用vmstat检测,每隔1秒刷新一次,共刷新3次
0
procs:
进程信息字段: -r:等待运行的进程数,数量越大,系统越繁忙。 -b:不可被唤醒的进程数量,数量越大,系统越繁忙。
memory:
内存信息字段: -swpd:虚拟内存的使用情况,单位为 KB。 -free:空闲的内存容量,单位为 KB。-buff:缓冲的内存容量,单位为 KB。-cache:缓存的内存容量,单位为 KB。
swap:
交换分区信息字段: -si:从磁盘中交换到内存中数据的数量,单位为 KB。 -so:从内存中交换到磁盘中数据的数量,单位为 KB。这两个数越大,表明数据需要经常在磁盘和内存之间进行交换,系统性能越差。
io:
磁盘读/写信息字段: -bi:从块设备中读入的数据的总量,单位是块。 -bo:写到块设备的数据的总量,单位是块。这两个数越大,代表系统的 I/O 越繁忙
system:
系统信息字段: -in:每秒被中断的进程次数。 -cs:每秒进行的事件切换次数。这两个数越大,代表系统与接口设备的通信越繁忙。
cpu:
CPU信息字段: -us:非内核进程消耗 CPU 运算时间的百分比。 -sy:内核进程消耗 CPU 运算时间的百分比。 -id:空闲 CPU 的百分比。 -wa:等待 I/O 所消耗的 CPU 百分比。 -st:被虚拟机所盗用的 CPU 百分比
 
iostat:
0
 

五大系统资源:

cpu利用率 → top ps aux vmstat
内存利用率 → free
磁盘利用率 → df ldisk -l
磁盘读写io(读写性能) dd(不建议用) vmstat iostat
网络资源(带宽)
 
 

进程的启动方式

前台启动:用户输入命令,直接执行程序
后台启动:
& 后台执行
fg命令 再调回前台 可以fg +序号
jobs 看后台运行数
有交互的建议不要放后台 比如ping 无法停止的话再调回前台就可以停止了
ctrl+z放入后台并停止
前台执行是1个1个执行,后台是并行执行
 
终止进程的运行
ctrl+C 中断正在执行的命令
kill、killall命令
kill用于终止指定PID号的进程
killall用于终止指定名称的所有进程
-9选项用于强制终止
bg 把停止的程序再复活
0
 
0
 

crontab命令

cat /etc/crontab
格式:
* * * * *    你要执行的命令
5个*的含义:
* 14-18/1 1 * * 每月的1号,下午14到18点,每小时执行一次
分种 小时 日 月 周
*1 *10 十点01分
* 9 * * *9点整
* * 2 10 * 10月2日
你设置了天数就别设置周几了,可能会冲突
crontab
-l
-e 在crontab里面%不能用,里面有特殊的含义,代表换行符,可以+转义符
-r
 
*表示该范围内的任意时间
,表示间隔的多个不连续时间点
-表示1个连续的时间范围
/指定间隔的时间频率
 
书写crontab定时任务时,需要注意以下几个事项
6个 选项都不能为空,必须填写。如果不确定,则使用*代表任意时间
 
 
posted @ 2022-10-16 00:37  七分人格  阅读(63)  评论(0编辑  收藏  举报