Linux:进程

文章目录


进程管理

1 进程

运行中的程序(动态,执行时将程序加载到内存上)

  • 程序(可执行的二进制文件)
    • C/C++
      源代码——编译——链接——程序
    • Java
      源代码——编译——字节码文件——JVM(java虚拟机)

2 进程的状态:

  • 创建
  • 就绪
  • 运行:CPU,执行进程中的指令
  • 结束
  • 阻塞
时间片轮转法 准备资源 准备完成 创建 就绪 运行 结束 阻塞

时间片轮转法:CPU的执行时间划分为很小的时间片,每个进程在CPU上运行时,一次之分配一个时间片

3 进程的记录

  • Linux:/proc,虚拟目录(以进程为单位存储,内存映射)
  • 进程的唯一标识——PID
  • 查看进程的状态
cd /proc/进程的PID/status

cat status

4 进程管理命令

4.1 查看进程

ps  #终端进程
ps -e  #系统进程
ps -f  #终端进程,UID用户,PPID父进程
UID         PID   PPID  C STIME TTY          TIME CMD
root       3005   2993  0 14:39 pts/0    00:00:00 bash
root       3298   3005  0 14:43 pts/0    00:00:00 ps -f
ps -ef  #系统进程
ps -ef|grep *  #管道命令,过滤————筛选信息

4.2 查看实时进程

top  #命令
top - 14:54:01 up 15 min,  1 user,  load average: 0.00, 0.08, 0.19
Tasks: 313 total,   2 running, 311 sleeping,   0 stopped,   0 zombie
       #总进程个数      运行         睡眠           暂停        僵死态  
%Cpu(s):  4.0 us,  2.0 sy,  0.0 ni, 91.9 id,  0.0 wa,  1.7 hi,  0.3 si,  0.0 st
MiB Mem :   1806.1 total,    133.5 free,   1207.5 used,    465.0 buff/cache
#  内存             总              剩余           使用
MiB Swap:   2048.0 total,   2038.0 free,     10.0 used.    433.4 avail Mem 
#交换分区(对内存的补充)

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND   
  2592 root      20   0 2887152 153540  87480 S   1.3   8.3   0:19.59 gnome-sh+ 
  3528 root      20   0   64016   4744   3872 R   1.0   0.3   0:03.14 top       
  1151 root      20   0  181688  13212  10012 R   0.7   0.7   0:02.32 vmtoolsd 

4.3 结束进程

kill 进程的PID
  • 进程的执行方式
    • 前台执行:等待进制执行结束,终端才能继续操作
    • 后台执行:进程执行时,不妨碍终端的操作

4.3.1 结束后台进程

进程命令&  #进程转为后台执行
[root@localhost ~]# sleep 200&
[1] 3758
[root@localhost ~]# kill 3758
[1]+  Terminated              sleep 200

4.3.2 结束前台进程

#打开另一个终端界面
ps -e|grep *  #筛选出该进程,查看其PID
kill 进程PID
Ctrl+c  #结束前台进程

4.3.3 结束挂起的进程

Ctrl+z  #挂起前台进程

kill -stop 进程PID  #挂起前台进程

jobs  #查看后台或挂起的进程任务列表
fg 任务号  #将挂起或后台进程转为前台执行
bg 任务号  #将挂起进程转为后台执行

kill -9 进程PID  #强制结束进程
  • 将进程转为后台运行
[root@localhost ~]# jobs
[1]+  Stopped                 sleep 200
[root@localhost ~]# bg 1   #将进程转为后台运行
[1]+ sleep 200 &
[root@localhost ~]# ps
   PID TTY          TIME CMD
  4014 pts/0    00:00:00 bash
  4058 pts/0    00:00:00 sleep
  4137 pts/0    00:00:00 ps
[root@localhost ~]# kill 4058  #结束进程
[1]+  Terminated              sleep 200
  • 强制结束进程
[root@localhost ~]# sleep 200
^Z
[1]+  Stopped                 sleep 200
[root@localhost ~]# ps
   PID TTY          TIME CMD
  4014 pts/0    00:00:00 bash
  4199 pts/0    00:00:00 sleep
  4206 pts/0    00:00:00 ps
[root@localhost ~]# kill -9 4199  #强制结束进程
[1]+  Killed                  sleep 200
上一篇:R语言ggplot2 简介


下一篇:Java多线程