Linux命令全解( 八 )


  • 每一个进程 , 都会对应一个父进程 , 而这个父进程可以复制多个子进程 。例如www服务器 。
  • 每个进程都可能以两种方式存在:前台和后台 。
    • 前台进程:用户目前的屏幕上可以进行操作的 。比如说Vim
    • 后台进程:实际在操作 , 但由于屏幕上无法看到的进程 , 通常使用后台方式执行 。比如说数据库
  • 一般系统的服务都是以后台进程的方式存在 , 而且都会常驻在系统中 , 直到关机才结束 。
  • 显示系统执行的进程
    • ps:查看目前系统中 , 有哪些正在执行 , 以及它们执行的状况 。可以不加任何参数 。PID:进程识别号;TTY:终端机号;TIME:此进程所消耗的CPU时间;CMD:正在执行的命令或进程名; RSS:占物理内存的情况VSZ: 占虚拟内存的情况
      STAT:进程状态 , S-睡眠R-正在运行D-短期等待Z-僵死进程 , 需要定时清除T-被跟踪或者被停止
    • ps -a:显示当前终端的所有进程信息 。
    • ps -u:以用户的格式显示进程信息 。
    • ps -x:显示后台进程运行的参数 。
    • ps -axu | grep xxx:过滤得到xxx的信息 。ps -axu | grep sshd
    • ps -ef:以全格式显示当前所有的进程 , 查看进程的父进程PPID 。
    • -e:显示所有进程 。
    • -f:全格式 。
  • 终止进程
    • kill [选项] 进程号:通过进程号杀死进程
    • killall 进程名称:通过进程名称杀死进程 , 也支持通配符 , 这在系统因负载过大而变得很慢时很有用
    • -9:表示强迫进程立刻停止
    • 案例1:踢掉非法用户:kill 进程号
    • 案例2:终止远程登录服务sshd , 在适当时候再次重启sshd服务
      kill sshd对应的进程号;/bin/systemctl start sshd.service--重启sshd服务
    • 案例3:终止多个gedit编辑器:killall 进程名称
      killallgedit
    • 案例4:强制杀掉一个终端:kill -9 进程号对于正在运行的终端直接kill 进程号 系统会认为是误操作
  • 查看进程树:pstree [选项]
    • -p:显示进程的PID
    • -u:显示进程的所属用户
  • 服务(service)管理