CKylin.Blog

Linux笔记 - 进程

来自海哥的学习笔记分享

进程管理

简介:

Linux是一个多用户多任务的操作系统,系统上可以同时运行多个进程。

程序:程序是静态的,是完成某些功能的代码的集合

进程:进程是动态的,是程序运行之后,在内存中的状态,运行的程序会产生一个或多个进程

如何产生一个进程?

  1. 运行程序或者执行命令
  2. 计划任务

归根结底,运行程序就会产生进程

如何终止一个进程?

  1. 程序或命令执行完成,自动终止
  2. 强制终止进程(杀进程)

查看进程号

cd /proc/

在该目录下蓝色数字的目录,都是进程号(PID)

一.进程查看

(一)、静态查看进程

1、ps 是监视系统进程的主要工具,显示的是瞬时的进程状况

        ps    显示当前被运行的进程

第一组:

ps   -elf
    -e:显示所有进程
    -f:全格式显示
    -l:长格式显示

top - 15:05:06 up 8:19, 4 users, load average: 0.00, 0.00, 0.00

    系统时间  运行时长   几个登录用户      系统在1分钟、5分钟、15分钟的平均负载情况

Tasks: 160 total, 2 running, 158 sleeping, 0 stopped, 0 zombie //对进程的概括

    总进程数     正在运行的   休眠的进程   停止的进程   僵尸进程           

Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.3%si,

按数字1,展开CPU,可以用于查看有几个CPU。

Mem: 1016516k total, 903140k used, 113376k free, 83324k buffer
Swap: 4181384k total, 8k used, 4181376k free, 419480k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

top:

交互式命令
l: 是否显示平均负载和启动时间
t: 是否显示进程和CPU状态相关信息
m: 是否显示内存相关信息
M: 根据驻留内存大小进行排序
P:根据CPU使用百分比进行排序
T: 根据累计时间进行排序
c: 是否显示完整的命令行信息
q: 退出top
k: 终止某个进程 

top:选项

-d: 指定延迟时长,单位是秒,默认是3秒
-b: 批模式,基本不会用
-n 数字:在批模式下,共显示多少批

**仅动态查看某个进程的状态(必须记住的): **

top -p 2597 //-p 进程号,动态查看某一个进程


# 二.进程的管理

**进程间通信的方式三种:**
1. 信号   signal
2. 消息  message
3. 共享内存  shared memory

信号是类Unix系统中的一种通信机制,它用来中断运行的进程执行某些操作。

## (一)、kill

### 1、查看信号列表
    kill -l   (字母l) 
    
### 2、常用的信号

*  1) SIGHUP    :重读进程的配置,即不停止服务的情况下,重新读取配置文件 
   *  `kill -1 PID  或     kill -SIGHUP PID`
*  2) SIGINT:中断(interrupt),相当于ctrl + c
   * 第一个标签:`firefox 172.16.254.210`
   * 另一个标签:
     * ```bash
        ps -ef | grep fire
             root      7839  4203  2 15:56 pts/3    00:00:01 /usr/lib64/firefox/firefox 172.16.254.210
             root      7858  7839  0 15:56 pts/3    00:00:00 [firefox] <defunct>
             root      7899  3222  0 15:57 pts/1    00:00:00 grep fire
        kill -2 7839
 * 第一个标签:
     发现该标签中的命令被终止了
### 3)进程调度

* ctrl+Z:转入后台并且停止
* jobs:查看处于后台的任务离别
* fg:将后台的进程恢复前台运行,可指定任务号
* ctrl+c:中断正在执行的命令
* kill:终止PID  -9 强制终止  
* pkill:根据 特定条件终止进程
  * -t:停止终端进程
  * -U:按用户名终止进程
        
----
>  **如果你发现一个进程占用资源非常多,怎么办?**
> 
>   * 1)如果进程是你的,将其nice值调高,让其他进程优先运行。
>   * 2)如果进程不是你的,可以将其杀死。

----

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »