Linux基础进程管理

一、进程

了解如进程的:
• PID,PPID
• 当前的进程状态
• 内存的分配情况
• CPU和已花费的实际时间
• 用户UID,他决定进程的特权

(一)、静态查看进程

# ps axu | less
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.6 129128  6468 ?        Ss   19:09   0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root         2  0.0  0.0      0     0 ?        S    19:09   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    19:09   0:00 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   19:09   0:00 [kworker/0:0H]
root         6  0.0  0.0      0     0 ?        S    19:09   0:00 [kworker/u2:0]
root         7  0.0  0.0      0     0 ?        S    19:09   0:00 [migration/0]

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 以线程的方式运行
START: 进程的启动时间
TIME: 进程占用CPU的总时间
COMMAND: 进程文件,进程名

示列1:

# ps aux --sort %cpu |less        //排序打印
# ps aux --sort -%cpu | less        //倒序打印
# ps aux --sort  rss | less
# ps aux --sort -rss | less

示列2:

# ps auxf |grep vsftp     //指定查找某写指定的程序
root      1143  0.0  0.0  53212    92 ?        Ss   07:57   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root     14497  0.0  0.0 112676   980 pts/4    S+   21:33   0:00  |       \_ grep --color=auto vsftp

示列3:

# ps axo user,pid,ppid,%mem,command | grep vsftp      //自定义显示字段及程序服务
root      1143     1  0.0 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root     14668 11675  0.0 grep --color=auto vsftp

# ps axo user,pid,ppid,%mem,command       //自定义显示字段
USER       PID  PPID %MEM COMMAND
root         1     0  0.0 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root         2     0  0.0 [kthreadd]
root         3     2  0.0 [ksoftirqd/0]
root         5     2  0.0 [kworker/0:0H]
root         7     2  0.0 [migration/0]
root         8     2  0.0 [rcu_bh]
root         9     2  0.0 [rcu_sched]

示列4:

查看指定的进程PID

# cat /run/sshd.pid       //指定进程的PID,
1150

# ps aux | grep sshd
root      1150  0.0  0.0 105996  1276 ?        Ss   07:57   0:00 /usr/sbin/sshd -D
root     11665  0.0  0.0 147864  3880 ?        Ss   19:26   0:00 sshd: root@pts/4
root     13025  0.5  0.2 151592  8988 ?        Ss   20:33   0:24 sshd: root@pts/3
root     14749  0.0  0.0 112680   984 pts/4    S+   21:50   0:00 grep --color=auto sshd

查看进程树:

# pstree
systemd─┬─ModemManager───2*[{ModemManager}]
        ├─2*[abrt-watch-log]
        ├─abrtd
        ├─accounts-daemon───2*[{accounts-daemon}]
        ├─alsactl
        ├─at-spi-bus-laun─┬─dbus-daemon
        │                 └─3*[{at-spi-bus-laun}]
        ├─at-spi2-registr───2*[{at-spi2-registr}]
        ├─atd
        ├─auditd─┬─audispd─┬─sedispatch
        │        │         └─{audispd}
        │        └─{auditd}

(二)、动态查看

# top
# top -d 1
# top -d 1 -p 10126                        //查看指定进程的动态信息
# top -d 1 -p 10126,1
# top -d 1 -u apache                        //查看指定用户的进程
# 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

  load average: 0.86, 0.56, 0.78 CPU最近 1分钟5分钟15分钟平均负载

第二部分:进程信息

命令
h|?帮助
M    按内存的使用排序
P    按CPU使用排序
N    以PID的大小排序
R    对排序进行反转
f    自定义显示字段
1    显示所有CPU的负载

<    向前
>    向后
z    彩色
W 保存top环境设置 ~/.toprc

二、信号控制

(一)、发送信号

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

猜你喜欢

转载自www.cnblogs.com/sky-k/p/9398774.html