进程管理

1.png

进程的生命周期

父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。每个新进程分配一个唯一的进程 ID (PID),满足跟踪安全性
之需。PID 和 父进程 ID (PPID)是子进程环境的元素,任何进程都可以创建子进程,所有进程都是第一个系统进程的后代:

Centos5/6: init
Centos7: systemd

1.png

子进程继承父进程的安全性身份、过去和当前的文件描述符、端口和资源特权、环境变量,以及程序代码。随后,子进程可能exec自己的程序代码。通常,父进程在子进程运行期间处于睡眠(sleeping)状态。当子进程完成时发出(exit)信号请求,在退出时,子进程已经关闭或丢弃了其资源环境,剩余的部分称之为僵停(僵尸Zombie)。父进程在子进程退出时收到信号而被唤醒,清理剩余的结构,然后继续执行其自己的程序代码。

查看进程

1. # ps aux
2. # ps -ef
3. # ps axo user,pid,ppid,%mem,command
4. # ps axo user,pid,ppid,%mem,%cpu,command --sort -%cpu |less //排序设计

显示界面简述

USER:   运行进程的用户
PID:    进程ID
%CPU:  CPU占用率
%MEM: 内存占用率
VSZ:    占用虚拟内存
RSS:    占用实际内存 驻留内存
TTY:    进程运行的终端
STAT:   进程状态     man ps (/STATE)            
      R     运行
      S     可中断睡眠 Sleep
      D 不可中断睡眠 (usually IO)
      T     停止的进程 
      Z     僵尸进程
      X    死掉的进程
  
 【了解 】
  Ss    s进程的领导者,父进程
  S< <优先级较高的进程
  SN  N优先级较低的进程
  R+    +表示是前台的进程组
  Sl    以线程的方式运行    

查看指定进程的PID

  [root@tianyun ~]# ps aux |grep sshd
    root     10180  0.0  0.0   7224  1024 ?        Ss   16:00   0:00 /usr/sbin/sshd

  [root@tianyun ~]# pgrep -l sshd
    10180 sshd
  [root@tianyun ~]# pgrep sshd
    10180
  [root@tianyun ~]# pidof sshd
    10180

动态查看进程 top

    [root@tianyun ~]# top      //
    [root@tianyun ~]# top -d 1   //
    [root@tianyun ~]# top -d 1 -p 10126                   //查看指定进程的动态信息
    [root@tianyun ~]# top -d 1 -p 10126,1       //
    [root@tianyun ~]# top -d 1 -u apache                        //查看指定用户的进程
    [root@tianyun ~]# top -d 1 -b -n 2 > top.txt           // 将2次top信息写入到文件

第一部分:系统整体统计信息
top - 14:15:04 up 47 min, 2 users, load average: 0.25, 0.18, 0.12
Tasks: 235 total, 1 running, 234 sleeping, 0 stopped, 0 zombie
Cpu(s): 8.9%us, 1.0%sy, 0.0%ni, 90.1%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 7944064k total, 746164k used, 7197900k free, 35724k buffers
Swap: 1048568k total, 0k used, 1048568k free, 261492k cached
cpu stat

信号控制kill

  [root@tianyun ~]# kill -l                     //列出所有支持的信号
  编号 信号名
  1) SIGHUP         重新加载配置  PID不变
  2) SIGINT         键盘中断^C
  3) SIGQUIT       键盘退出
  9) SIGKILL            强制终止
  15) SIGTERM       终止(正常结束),缺省信号
  18) SIGCONT       继续
  19) SIGSTOP       停止
  20)SIGTSTP      暂停^Z

1. # kill -1 9100
2. # killall vim
3. # pkill -u alice 终止用户的进程
4. # pkill -t pts/2 //终止pts/2上所有进程
5. # pkill -9 -t pts/2 //终止pts/2上所有进程 并结束该pts/2
6. # pkill vim

进程优先级

相对优先级 nice

由于不是每个进程都与其他进程同样重要,可告知进程调度程序为不同的进程使用不同的调度策略。常规系统上运行的大多
数进程所使用的调度策略为 SCHED_OTHER (也称为SCHED_NORMAL),但还有其它一些调度策略用于不同的目的。

SCHED_OTHER 调度策略运行的进程的相对****优先级称为进程的 nice 值,可以有40种不同级别的nice值。

1.png

nice 值越高: 表示优先级越低,例如+19,该进程容易将CPU 使用量让给其他进程。
nice 值越低: 表示优先级越高,例如-20,该进程更不倾向于让出CPU。

调节nice值
  [root@tianyun ~]# nice -n -5 sleep 6000 & 
  [root@tianyun ~]# nice -n -20 systemctl start httpd
  [root@tianyun ~]# renice -20 10089

作业控制job

基本命令
[root@tianyun ~]# sleep 3000 &                      //
[root@tianyun ~]# jobs                                  //查看后台作业
[root@tianyun ~]# bg %2                             //让作业2在后台运行
[root@tianyun ~]# fg %1                             //将作业1调回到前台
[root@tianyun ~]# kill %1                               //kill 1,终止PID为1的进程
屏幕回写screen
[root@www ~]# yum -y install screen                        //安装
[root@www ~]# screen -S install_apache        //命名屏幕
[root@www ~]# screen -list                         //列出屏表
[root@www ~]# screen -r 29013               //返回此屏幕

你可能感兴趣的:(进程管理)