概念
程序和进程的关系
程序
- 保存在硬盘,光盘等介质中的可以执行的代码和数据
- 文件中静态保存的代码
进程
- 在CPU及内存中运行的程序代码
- 动态执行的代码
- 父,子进程(每个程序可以创建一个或多个进程)
父进程先启动---------->子进程
分配资源:父进程给子进程分配资源
结束运行:子进程先结束------>父进程收回子进程的资源之后,父进程才会终止
相关命令
静态查看进程信息ps
- 方法一: ps aux
a:显示终端上的所有进程,包括其他用户的进程
u:表示列出进程的用户
x:显示所有终端的进程
各列的解释:
USER:进程的用户
PID:进程的id
%CPU:进程占用cpu百分比
%MEM:占用物理内存的百分比
VSZ:该进程只用的虚拟内存量(kb),虚拟内存简单来说就是包外存当做内存来使用,便于缓解物理内存压力的不足
RSS:该进程占用的物理内存量(kb)
TTY:启动进程的终端名,不是从终端启动的进程显示为?
STAT:该进程的状态(D:不可中断的休眠状态,R:正在运行状态,S:处于休眠状态,可被唤醒,T:状停止状态,可能实在后台暂停或进程处于跟踪调试状态,Z:僵尸进程,进程以经停止,但是部分程序还在内存中)
START:该进程被出发启动时间
TIME:该进程实际使用cpu运行的时间
COMMAND:进程的启动命令
- 方法二:ps -elf
各列的解释:
F:进程标志,说明进程的权限,常见的标志有两个: 1:进程可以被复制,但是不能被执行; 4:进程使用超级用户权限;
S:进程状态。具体的状态和"psaux"命令中的 STAT 状态一致;
UID:运行此进程的用户的 ID;
PID:进程的 ID;
PPID:父进程的 ID;
C:该进程的 CPU 使用率,单位是百分比;
PRI:进程的优先级,数值越小,该进程的优先级越高,越早被 CPU 执行;系统定义不可以人为修改
NI:进程的优先级,数值越小,该进程越早被执行;可以人为修改
ADDR:该进程在内存的哪个位置;
SZ:该进程占用多大内存;
WCHAN:该进程占用多大内存;
TTY:该进程由哪个终端产生;
TIME:该进程占用 CPU 的运算时间,注意不是系统时间;
CMD:产生此进程的命令名;
动态查看进程信息top
执行结果
top常用命令:
c键 :根据CPU使用百分比大小进行排序
q键 :退出top程序
数字1键 :显示CPU个数和状态
kill
kill -9 杀死进程 (根据pid号删除,不要根据服务名删除)
服务名可能会重复,慎用一般都是用PID来删除执行的进程,应为PID是唯一的
iostat命令和lsblk命令
iostat命令输出磁盘IO 和 CPU的统计信息。
lsblk命令即用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系
TTY终端
Centos7系统,tty1表示图形界面,tty2-tty6表示文字界面
pts表示是远程终端连接,比如xshell,后面的数字代表登陆的时间顺序,越小证明登陆越早
定时任务crontab命令
crontab任务配置
意义范围 | 分钟 | 小时 | 天 | 月份 | 周 | 命令 |
---|---|---|---|---|---|---|
数字范围 | 0~59 | 0~23 | 1~31 | 1~12 | 0~7 | 需要执行的命令 |
周的数字为 0 或 7 时,都代表"星期日"的意思
-
crontab-e 编写定时任务 (和vim编辑器一样)
分 时 日 月 周 执行的命令
每两分钟执行 -------------- */2 * * * *
每小时的第20分钟执行----------------20 * * * * -
crontab-l 查看本机设置的所有定时任务
-
crontab-r 清空定时任务
只能清空所有的定时任务
如果要删除具体的定时任务用crontab -e进入定时任务,按照VIM的操作方式删除对应的定时任务(每次退出crontab -e都会刷新计时器) -
秒级执行
用sleep后面接秒的方式实现