linux 进程管理

===进程管理===
程序:文件,一般是二进制,静态 如:/usr/sbin/httpd,/usr/sbin/sshd
进程:是程序运行的过程, 动态,有生命周期的,动态产生和消亡的

一个程序可能对应多个进程
[root@station230 ~]#  ps aux  |grep 'sshd'
root      2705  0.0  0.0   7224  1020 ?        Ss   08:48   0:00 /usr/sbin/sshd
root      8158  0.0  0.0   4264   676 pts/1    R+   14:05   0:00 grep sshd
[root@station230 ~]# 
[root@station230 ~]# ps aux |grep 'httpd'
root      8120  0.0  0.1  10092  2908 ?        Ss   14:03   0:00 /usr/sbin/httpd
apache    8121  0.0  0.0  10092  2052 ?        S    14:03   0:00 /usr/sbin/httpd
apache    8122  0.0  0.0  10092  2052 ?        S    14:03   0:00 /usr/sbin/httpd
apache    8123  0.0  0.0  10092  2052 ?        S    14:03   0:00 /usr/sbin/httpd
apache    8124  0.0  0.0  10092  2052 ?        S    14:03   0:00 /usr/sbin/httpd
apache    8125  0.0  0.0  10092  2052 ?        S    14:03   0:00 /usr/sbin/httpd
apache    8126  0.0  0.0  10092  2052 ?        S    14:03   0:00 /usr/sbin/httpd
apache    8128  0.0  0.0  10092  2052 ?        S    14:03   0:00 /usr/sbin/httpd
apache    8129  0.0  0.0  10092  2052 ?        S    14:03   0:00 /usr/sbin/httpd
root      8160  0.0  0.0   4264   676 pts/1    R+   14:05   0:00 grep httpd

父进程:程序运行时产生的第一个进程
子进程:由父进程衍生出来的进程
注意:如果父进程终止,子进程也会随之被终止

===查看进程===
静态ps
[root@station230 ~]# ps aux
USER        PID  %CPU %MEM    VSZ   RSS  TTY      STAT  START    TIME COMMAND
root         1       0.0     0.0      2164   648  ?            Ss    08:47   0:00    init [5]  

USER: 运行进程的用户
PID: 进程ID
%CPU: CPU占用率
%MEM: 内存占用率
RSS   实际占用内存  单位 byte
TTY: 程序运行的终端   ?代表不依赖任何终端
STAT:状态
      S 处于休眠 Sleep
      R 运行
      Z 僵尸进程 
  Ss  s进程的领导者,父进程
  S<  <优先级较高的进程
  SN  N优先级较低的进程
  R+  +表示是后台的进程组
START   該進程被触发启动时间
TIME  使用cpu时间
COMMAND   命令的名称和参数

#ps L   //看所有支持的字段

#ps -eo pid,ppid,%mem,command |grep httpd    //-o 用户自定义

[root@station230 ~]#  ps axo user,pid,ppid,%mem,command  |grep httpd
root      8310     1  0.1 /usr/sbin/httpd
apache    8311  8310  0.0 /usr/sbin/httpd
apache    8312  8310  0.0 /usr/sbin/httpd
apache    8313  8310  0.0 /usr/sbin/httpd
apache    8314  8310  0.0 /usr/sbin/httpd
apache    8315  8310  0.0 /usr/sbin/httpd
apache    8316  8310  0.0 /usr/sbin/httpd
apache    8318  8310  0.0 /usr/sbin/httpd
apache    8319  8310  0.0 /usr/sbin/httpd
root      9236  6798  0.0 grep httpd

ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
[root@station230 ~]# ps auxf |grep httpd
root      9279  0.0  0.0   4264   672 pts/1    S+   14:37   0:00                      \_ grep httpd
root      8310  0.0  0.1  10092  2912 ?        Ss   14:19   0:00 /usr/sbin/httpd
apache    8311  0.0  0.0  10092  2060 ?        S    14:19   0:00  \_ /usr/sbin/httpd
apache    8312  0.0  0.0  10092  2060 ?        S    14:19   0:00  \_ /usr/sbin/httpd
apache    8313  0.0  0.0  10092  2060 ?        S    14:19   0:00  \_ /usr/sbin/httpd
apache    8314  0.0  0.0  10092  2060 ?        S    14:19   0:00  \_ /usr/sbin/httpd
apache    8315  0.0  0.0  10092  2060 ?        S    14:19   0:00  \_ /usr/sbin/httpd
apache    8316  0.0  0.0  10092  2060 ?        S    14:19   0:00  \_ /usr/sbin/httpd
apache    8318  0.0  0.0  10092  2060 ?        S    14:19   0:00  \_ /usr/sbin/httpd
apache    8319  0.0  0.0  10092  2060 ?        S    14:19   0:00  \_ /usr/sbin/httpd

[root@station230 ~]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0       0 08:47 ?        00:00:00 init [5]  

查看指定进程的PID
[root@station230 ~]# ps aux |grep sshd
root     10180  0.0  0.0   7224  1024 ?        Ss   16:00   0:00 /usr/sbin/sshd
[root@station230 ~]#  pgrep sshd   //查进程id
10180
[root@station230 ~]# pgrep vino-server
10126
[root@station230 proc]#  pstree  //查看进程树

======动态top
[root@station230 ~]#  top -d 1     //1秒更新一次
[root@station230 ~]#  top -d 1 -p 10126  查看指定进程的动态信息
[root@station230 ~]# top -d 1 -p `pgrep sshd`  //命令替换
[root@station230 ~]# top -d 1 -u apache 查看指定用户的进程
[root@station230 ~]#  top -b -n 2 > top.txt   //按批次,将2次top信息写入到文件

第一部分:系统整体统计信息
load average: 0.86, 0.56, 0.78   CPU 1分钟,5分钟,15分钟平均负载

第二部分:进程信息
M 按内存的使用排序
P 按CPU使用排序
N 以PID的大小排序
R 对排序进行反转

< 向前
> 向后
z 彩色

f 修改top显示选项

调整进程的优先级:NICE
[root@station230 ~]# sleep 2000 &
[1] 9838
[root@station230 ~]# sleep 3000 &
[2] 9839
r 调整进程的优先级 (-20高)  ---0--- (19低)       //共0-139个优先级。0--99 保留给实时进程使用的,PR字段为RT的,无法调整。
k 给进程发送信号,15
====================================================================
shell: 设置或调整进程的优先级
[root@station230 ~]# nice -n -5 sleep 6000 & //程序运行时设置优先级
[root@station230 ~]# sleep 7000 &
[3] 10089
[root@station230 ~]# renice -20 10089 //对已运行的进程设置新的优先级
10089: old priority 0, new priority -20
====================== kill 命令 ==============================================
[root@station230 ~]# kill -l //列出所有支持的信号
编号 信号名
1) SIGHUP  重启
9) SIGKILL 强制终止
15) SIGTERM 终止(正常退出,干净),缺省信号

[root@station230 ~]# ps aux |grep sshd
root      9486  0.0  0.0   7224  1056 ?        Ss   15:01   0:00 /usr/sbin/sshd
[root@station230 ~]#  kill -1  9486 //发送重启信号
[root@station230 ~]# ps aux |grep sshd
root      9947  0.0  0.0   7224  1028 ?        Ss   15:42   0:00 /usr/sbin/sshd
[root@station230 ~]# kill 9947
[root@station230 ~]# ps aux |grep sshd
root      9953  0.0  0.0   4264   676 pts/1    R+   15:44   0:00 grep sshd
# killall -9  vim         //只能跟进程名,杀死所有vim

==== netstat ====
[root@station230 ~]#  netstat -tnlp  查看正在监听的,使用tcp协议的进程
-t  tcp协议
-u  udp协议
-l  listen
-p  PID/Program name
-n  不反解

[root@station230 ~]# netstat -tnlp |grep :5900
tcp        0      0 0.0.0.0:5900                0.0.0.0:*                   LISTEN      10126/vino-server   
[root@station230 ~]# netstat -tnlp |grep :80
[root@station230 ~]# service httpd start
启动 httpd:                                           [确定]
[root@station230 ~]# netstat -tnlp |grep :80
tcp        0      0 :::80                       :::*                        LISTEN      10364/httpd 

[root@station230 ~]# netstat -an |grep 5900
//查看5900端口连接的状态
'tcp        0      0 0.0.0.0:5900                0.0.0.0:*                   LISTEN      
tcp       10      0 192.168.2.115:5900          192.168.2.129:46303         ESTABLISHED 
tcp       10      0 192.168.2.115:5900          192.168.2.33:39213          ESTABLISHED 
tcp       10      0 192.168.2.115:5900          192.168.2.116:37023         ESTABLISHED 
tcp        0      0 192.168.2.115:5900          192.168.2.126:35725         ESTABLISHED 
tcp       10      0 192.168.2.115:5900          192.168.2.124:33955         ESTABLISHED 
tcp       10      0 192.168.2.115:5900          192.168.2.111:46551         ESTAB
[root@station230 ~]# netstat -an |grep :80

=====/proc======
虚拟目录:内核、进程运行的信息
[root@station230 ~]# cat  /proc/cpuinfo  查看CPU信息
processor    :0
processor    :1
    
physical id  :0
physical id  :0    物理ID //确定几个cpu
flags           :  lm(64位)
                   vmx 支持虚拟化 intel
    svm 支持虚拟化 AMD
[root@station230 ~]#  egrep --color  'lm|vmx|svm' /proc/cpuinfo 
flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx lm constant_tsc up pni monitor ds_cpl tm2 ssse3 cx16 xtpr lahf_lm
[root@station230 ~]# cat /proc/cmdline //内核启动时传递的参数
ro root=LABEL=/1 rhgb quiet

[root@station230 ~]#  free -m
             total       used       free     shared    buffers     cached
Mem:          2017       1955         61          0        113       1426
-/+ buffers/cache:        416       1600
Swap:         8001          0       8001
[root@station230 ~]#  cat /proc/meminfo

[root@station230 ~]#  uptime  
17:20:58 up  8:33,  3 users,  load average: 0.43, 0.36, 0.36
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值