linux下进程管理

1.什么是进程?


程序:放置在储存媒体中(如硬盘,光盘,软盘,磁带等)为实体文件的形态存在
进程:程序被触发后 , 执行者的权限与属性、程序的程序码与所需数据等都会被载入内存中 , 操作系统并给予这个内存内的单元一个识别码 (PID), 可以说 , 进程就是一个正在运行中的程序。

2.进程状态


R (Running): 该程序正在运行中 ;
S (Sleep): 该程序目前正在睡眠状态 (idle), 但可以被唤醒(signal) 。
D 不可被唤醒的睡眠状态 , 通常进程可能在等待 I/O 的情况。
T 停止状态 (stop), 可能是在工作控制 ( 背景暂停 ) 或除错(traced) 状态 ;
Z (Zombie): 僵尸状态 , 程序已经终止但却无法被移除至内存外
stat:显示的信息 S 进程状态(后面加进程状态)
 s *进程
 +前台运行
  l锁定空间(相当于gedit里面填写内容,将gedit缩小,但是里面内容相当于被锁定,没有被关闭,也没有存入后台)
 < 优先级高
  N 优先级低

3.进程查看 ps


  *图形方式查看:gnome-system-monitor

     linux下进程管理
  *命令方式查看:ps 和shell相关信息的显示
 (1)ps a  显示当前环境的所有进程,包含环境信息

 (2)ps -a 显示与当前环境有关的,即在当前环境运行的进程,不包含环境信息

linux下进程管理

(3)ps af  显示当前环境的所有进程并且显示进程从属关系

linux下进程管理
 (4)ps -A 显示所有进程

linux下进程管理
 (5)ps e  显示进程扩展信息(系统资源的调用)

linux下进程管理
 (5)ps l   较长较详细的将pid的信息列出
 (6)ps -u 显示进程用户信息 

linux下进程管理
 (8)ps -d  除过当前环境以外的信息

linux下进程管理
 (9) ps x 列出系统中所有运行包含tty输出设备

linux下进程管理
 *进程常用组合:
 (1)ps aux 显示系统中所有进程并显示进程用户
 (2)ps ef  显示进程详细信息并显示进程父子关系
 (3)ps ax 显示进程的所有进程  

linux下进程管理
 *显示进程指定信息 :
 (1)ps ax -o %cpu,%mem,user,group,comm,nice,pid,stat     
    依次为cpu负载 进程内存负载 进程用户 进程的组 进程的名称 进程的优先级 进程的id 进程的状态

linux下进程管理
 *进程排序:
  (1)ps ax --sort=
                     +%cpu|-%cpu
                     +%mem|-%mem   

linux下进程管理

想要看什么就后面用  -o 来指定  可以指定 %cpu %mem pid nice  user  group  comm  nice  stat  

4.进程优先级


  (1)范围:-20~19   -20的优先级大
  (2)查看:ps ax -o pid,nice,comm

linux下进程管理
  (3)指定某个优先级开启进程 nice -n 优先级数字  进程名称
                     例子:nice -n -5 vim & 开启vim并且指定程序优先级位-5

linux下进程管理

linux下进程管理
  (4)改变进程优先级  renice -n 优先级数字  进程pid
             例子:renice -n -5 1806  改变1806进程的优先级为-5

linux下进程管理

linux下进程管理

5.环境中进程的前后台调用


 (1)jobs : 查看被打入环境后台的进程
 (2)ctrl+z:把占用终端的进程打入后台,并且进程是停止状态
    ctrl+c :结束进程
 (3)fg jobsnum  把后台进程调回前台
 (4)bg jobsnum  把后台暂停的进程运行
 (5)comm & 让命令直接在后台运行  
      注意:vim不能被打入后台,若打入后台则就会停止,必须在前台,没有后台图形。
 +最优先  -次优先 没优先就等着

linux下进程管理

6.进程信号


 (1)常用信号等级
   man 7 signal   查看信号详细信息
   1   hup 八卦消息很灵通,进程重新加载配置,不用关闭进程,重启进程就可以重新加载配置(kill -1 进程号)
   2   删除进程在内容中的数据 (kill -2 进程号) 功能相当于ctrl+c
   3   删除鼠标在内存中的数据  (ctrl+/)  鼠标消失,动一下鼠标,鼠标又出现了
      例子:看视频的时候全屏,过一会鼠标会不见了,动一下鼠标又出来了,这就是设置了信号3
   9  强行结束某个进程,不能被阻塞  (kill -9 进程号)
   15 正常结束某个进程,可以被阻塞   (kill -15 进程号)

    linux下进程管理
   18  "运行"暂停进程  (kill -18 进程号)
   19  暂停某个进程,不能被阻塞 (kill -19 进程号)
   20  把进程打入后台,可以被阻塞 (kill -20 进程号)
 
  killall -信号 进程名称  结束所有进程名称相同的进程
  pkill -u student -信号  结束student用户的所有进程

7.进程的动态监控


 (1)top
     1  显示cpu每个核的负载
     s  调整刷新频率
     c  cpu负载排序
     m  内存使用量排序
     h  查看帮助
     q  表示退出  

8.ip设置


  图形化界面设置ip
   nm-connection-editor 回车

 

9.控制服务


(1)什么是服务:在一台机子上,可以位别人提供服务的程序的集合。
   命令      服务
   ssh ---->sshd
  client    server
  浏览器     
(2)用什么控制服务:系统初始化进程可以对服务进行相应控制
(3)当前系统初始化进程是什么:systemd  
       用pstree查看系统初始化进程树
(4)进程服务控制命令
  systemctl  status  sshd    显示sshd服务开启信息,状态inactive(不可用) active(可用)
  systemctl  start    sshd     打开sshd服务
  systemctl  stop    sshd    关闭sshd服务
  systemctl  restart sshd    重启服务  相当于重新开启一个进程 ,进程号会发生改变
  systemctl  reload  sshd    重新加载服务配置 进程号不会发生改变
  systemctl  enable  sshd    设置服务开机自动启动
  systemctl  disable sshd    设置服务开机不自动启动
  systemctl  list-units      列出系统所有开启服务(active)当前状态
  systemctl  list-unit-files 列出系统所有服务开机启动的状态(disable enable static)
          注:static  依赖性  依赖于上层服务,上层服务打开,则这个服务自动打开
  systemctl list-dependencies sshd.service    列出服务的依赖
  systemctl set-default multi-user.target  设定系统启动级别为多用户模式(无图形)
          注:若要切换为图形就输入 init 5/startx
  systemctl set-default graphical.target   设定系统运行级别为图形模式