标签:zomb 完整 zha 例子 tty 排名 启动 lock 系统
程序与进程:以静态保存在硬盘、光盘等介质中能被计算机识别的可执行代码和数据。
进程是程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础,是在CPU及内存中运行的动态车程序代码,一个进程可以创建一个或多个子进程,而这个进程就是它子进程的父进程,每个进程还包含多个线程。
进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的;任何进程都可以同其他进行一起并发执行;进程是系统进行资源分配和调度的一个独立单位;进程由程序,数据和进程控制块三部分组成。
在早期的操作系统中并没有线程的概念,进程是拥有资源和独立运行的最小单位,也是程序执行的最小单位。但是,由于计算机的发展,对CPU的要求越来越高,进程之间的切换开销较大,已经无法满足越来越复杂的程序的要求了。于是就发明了线程,线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元,是处理器调度和分派的基本单位。
- 线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位;
- 一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线
- 进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源(如打开文件和信号等),某进程内的线程在其他进程不可见;
- 线程上下文切换比进程上下文切换要快得多。
我们可以看到下图,首先咱们的电脑是由硬件组成,如:主板、CPU、内存、硬盘、显卡等;然后我们会在硬件的基础上给电脑装上一个系统,它相当于计算机的管理者,它负责任务的调度,资源的分配和管理,统领整个计算机硬件;有了系统我们才能在电脑上安装一些不同功能的应用程序。而我们用的VMware虚拟机就是一个运行程序,当我们运行虚拟机时系统就会创建相关的多个进程,而进程中又分为多个不同的线程。如图中的VIO、VPU、VMEM的便是不同的线程,而这些线程一起组成了一个进程。
我们使用不同的查看命令所查看到的进程状态也不同。
ps命令:----------查看静态的进程统计信息
常用的命令选项组合:
1.ps aux 命令。
a:----------显示当前终端下的所有进程信息,包括其他用户的进程。
u:----------使用以用户为主的格式输出进程信息。
x:----------显示当前用户在所有终端下的进程,tty本地终端,ps/0远程终端。
下面我来解释一下输出的进程信息的含义:
USER:启动该进程的用户账号名称
PID:该进程的ID号,在当前系统中是唯一的
TTY:该进程在哪个终端上运行。“?”表示未知,一般当前终端都是“?”
%CPU:该进程占用CPU的百分比
%MEM:该进程占用内存的百分比
VSZ:占用虚拟内存(swap空间)的大小
RSS:占用常驻内存(物理内存)的大小
STAT:显示了进程当前的状态,如S(可中断休眠)、s(父进程)、D(不可中断休眠)、R(运行)、l(多线性进程)Z(僵尸进程)、<(高优先级)、N(低优先级)、+(前台进程)。
START:该进程启动的时间
TIME:该进程占用CPU时间
COMMAND:启动该进程的命令的名称
2.ps -elf命令。
-e:---------显示系统内的所有进程信息。
-l:----------使用长(long)格式显示进程信息。
-f:----------使用完整的(full)格式显示进程信息。
下面我来解释一下输出的进程信息的含义:
UID:该进程用户ID
PID:该进程的ID号
PPID:该进程的父进程的ID号
C:该进程的CPU占用率,以整数表示
PIR:该进程用户态的优先级
NI:该进程的内核态的优先级(数值范围-20到19)
ADDR:“-”表示进程正在运行
SZ:该进程占用swap交换分区的总量
WCHAN:该进程在内核中的名称
STIME:进程的启动时间
TTY:与进程关联的终端
TIME:进程占用CPU的累计时间
CMD:启动该进程的命令的名称
3.ps aux | grep login,ps命令用管道操作加上“grep”过滤命令可以查看指定进程的信息。
top命令:----------查看动态的进程排名信息(3s刷新一次)
下面我解释一下输出进程信息所代表的含义:
Tasks(系统任务)信息:total(总进程数),running(正在运行进程数),sleeping(休眠进程数),stopped(中止进程数),zombie(僵尸进程数)。
%CPU信息:us(用户占用),sy(内核占用),ni(优先级调度占用),id(空闲CPU),wa(I/O等待占用),hi(硬件中断占用),si(软件中断占用),st(虚拟化占用)。
KiB(单位) Mem(内存)信息:total(总内存空间),free(可使用内存),used(已用内存),buff/cache(缓存区域)
KiB(单位)Swap(交换空间)信息:total(总交换空间),free(可使用交换空间),used(已用交换空间),avail Mem(内存使用量)。
在top命令的全屏操作界面中,按[C]键根据CPU占用情况对进程列表进行排列,或按[M]键根据内存占用情况进行排列,按[N]键根据启动时间进行排序,按[h]键获得top程序的在线帮助信息,按[q]键可以退出top程序。按[k]键,然后在列表上方将会出现“PID to kill”的提示信息,根据提示输入指定进程的PID号可终止对应的进程。
pgrep命令:----------根据特定条件查询进程PID
常用选项:
-l:------------显示进程名
-U:----------指定特定用户
-t:-----------指定终端
pstree命令:----------以树形结构列出进程信息
常用选项:
-a:----------显示详细信息
-u:----------显示进程对应的用户名
-p:----------显示进程的PID
查看指定用户进程“树”,直接用命令“pstree -ap 用户名”即可。
1.当我们用前台启动复制一个较大的文件时,我们需要等待操作完成才能进行其它命令的输入。
2.当我们后台启动时任然可以进行命令输入。
at命令:----------设置一次性计划任务
格式:at ...[HH:MM]...[yyyy-mm-dd] 例如:at 18:00 2019-08-24
[Ctrl+D]键:----------------提交计划任务
atq命令:-------------------查看所有等待执行计划任务
atrm命令:-----------------删除等待执行的计划任务
1.设置一条计划任务,然后等待执行,时间到达后自动执行成功。
2.设置两个计划任务,然后用“atq”命令查看,再用“atrm”命令删除一个任务。
crontab命令:----------设置周期性计划任务
常用选项:
-e [-u 用户名] ----------编辑某个用户的cron服务
-l [-u 用户名]-----------列出某个用户cron服务的详细内容
-r [-u 用户名]-----------删除某个用户的所有cron服务
crontab任务配置的格式:
每个字段的取值范围:
时间数值的特殊表示方法:
“ * ” :表示该范围内的任意时间
“ ,”:表示间隔的多个不连续时间点
“ - ” :表示一个连续的时间范围
“ / ” :指定间隔的时间频率
例子:
1.编辑root用户的cron服务,不指定用户则是当前用户。
2.进入cron服务编辑界面,用法与vim编辑器类似。添加一条cron任务后,“wq”保存退出。
3.等到时间到了后,查看/opt/目录,zhangsan目录已经复制到/opt/目录下了。
4.用“-l”选项查看cron任务列表,再用“-r”选项删除所有cron任务。
(1)[Ctrl+Z]组合键:将当前进程挂起,即调入后台并停止执行。
(2)jobs命令:查看处于后台的任务列表,结合“-l”选项可以显示PID。
(3)fg命令:将后台进程恢复到前台运行,可指定任务序号。
(4)bg命令:将后台停止的任务恢复运行,且继续在后台运行。
(1)[Ctrl+C]组合键:强制中断正在执行的命令
(2)kill命令:用于终止指定PID号的进程,需要使用进程的PID号作为参数,结合“-9”选项可以强制终止进程。慎用,可能会导致数据丢失。
(3)killall命令:用于终止指定名称的所有进程,killall命令也有“-9”选项
(4)pkill命令:根据特定条件终止相应的进程
常用选项:(大部分选项与pgrep命令基本类似)
-U:-------------根据进程所属的用户名终止相应进程
-t:--------------根据进程所在的终端终止相应进程
-9:-------------强制终止进程
1.可以看到我们再终端用zhangsan用户登录。
2.此时我们在远程终端用pkill命令强制关闭zhangsan用户的所有进程。
3.而此时终端上的zhangsan用户已经被强制注销了。
CentOS 7的进程查看与控制,手工启动与调度启动(全程演示)
标签:zomb 完整 zha 例子 tty 排名 启动 lock 系统
原文地址:https://blog.51cto.com/14449541/2432511