进程管理

静态查看进程 ps

[root@tianyun ~]# ps aux |less
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1      0.0         0.6   128096    6708 ?         Ss    16:20    0:01  /usr/lib/systemd/systemd 
————————————————————————————
USER: 运行进程的用户
PID: 进程ID
%CPU: CPU占用率
%MEM: 内存占用率
VSZ: 占用虚拟内存
RSS: 占用实际内存
TTY: 进程运行的终端   //可以开启vim 查询到终端名称
STAT: 进程状态 man ps (/STATE) 
———————————————————————————
R 运行
S 可中断睡眠 Sleep,(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 
D 不可中断睡眠,(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生) 
T 停止的进程 
Z 僵尸进程
X 死掉的进程
————————————————————————————
[了解]
Ss s进程的领导者,父进程
S< <优先级较高的进程
SN N优先级较低的进程
R+ +表示是前台的进程组
Sl 以线程的方式运行 
————————————————————————————
START: 进程的启动时间  //可以开启vim ,在用date验证。
TIME: 进程占用CPU的总时间
COMMAND: 进程文件,进程名
5种状态码
D 不可中断 uninterruptible sleep (usually IO) 
R 运行 runnable (on run queue) 
S 中断 sleeping 
T 停止 traced or stopped 
Z 僵死 a defunct (”zombie”) process 
示例1:
1 以CPU占比降序排列
[root@tianyun ~]# ps aux --sort %cpu |less      //--sort排序,升序(小到大)
示例2:安装一个进程观察,父子进程以及状态。父亲Ss 和 儿子S
[alice@tianyun ~]$ sudo yum -y install httpd    //安装网站程序。
[alice@tianyun ~]$ sudo systemctl start httpd   //启动网站
[alice@tianyun ~]$ sudo systemctl stop firewalld  //关闭防火墙
[root@tianyun ~]# ps aux |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
示例3:自定义显示字段
[root@tianyun ~]# ps axo user,pid,ppid,%mem,command   //xo指定列显示
[root@tianyun ~]# 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
[root@tianyun ~]# ps axo user,pid,ppid,%mem,%cpu,command --sort -%cpu |less    //针对某些程序,显示某些列,再进行排序。简洁明了
查看进程的4种方法:
第一种。cat
[root@localhost ~]$ cat /run/sshd.pid 
830

第二种。ps
[root@localhost ~]# ps aux |grep sshd
root 10180 0.0 0.0 7224 1024 ? Ss 16:00 0:00 /usr/sbin/sshd
第三种。pgrep

[root@localhost ~]# pgrep -l sshd
10180 sshd
[root@localhost ~]# pgrep sshd
10180

第四种。pidof
[root@localhost ~]# pidof sshd
10180
第一部分:系统整体统计信息
top - 11:45:08 up 18:54,  4 users,  load average: 0.05, 0.05, 0.05
Tasks: 176 total,   1 running, 175 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  3865520 total,  1100000 free,   580268 used,  2185252 buff/cache
KiB Swap:  4063228 total,  4063228 free,        0 used.  2917828 avail Mem 
负载加权值解释:—小于1正常————————————
load average: 0.86, 0.56, 0.78 系统最近 1分钟,5分钟,15分钟平均负载
![image.png](https://upload-images.jianshu.io/upload_images/11415933-b0f24560309890aa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
top技巧
动态查看进程 top,像windows的任务管理器
[root@tianyun ~]# top          //回车,立刻刷新。按z彩色显示,按F,通过光标设置列的顺序。
[root@localhost ~]# top -d 1   //每1秒刷新。
[root@localhost ~]# top -d 1 -p 10126 查看指定进程的动态信息
[root@localhost ~]# top -d 1 -p 10126,1    查看10126和1号进程
[root@localhost ~]# top -d 1 -u apache 查看指定用户的进程
[root@localhost ~]# top -d 1 -b -n 2 > top.txt //-b附加参数,只看2次top信息后写入到文件
[root@localhost ~]#vim  top.txt     //最后打开文件详细阅读
top交互命令
Ctrl+L 擦除并且重写屏幕。 
h或者? 显示帮助画面,给出一些简短的命令总结说明。 
k       终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。 
i 忽略闲置和僵死进程。这是一个开关式命令。 
q 退出程序。 
r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。 
S 切换到累计模式。 
s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。 
f或者F 从当前显示中添加或者删除项目。 
o或者O 改变显示项目的顺序。 
l 切换显示平均负载和启动时间信息。 
m 切换显示内存信息。 
t 切换显示进程和CPU状态信息。 
c 切换显示命令名称和完整命令行。 
M 根据驻留内存大小进行排序。 
P 根据CPU使用百分比大小进行排序。 
T 根据时间/累计时间进行排序。 
W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。
1 查看计划任务程序crond
[root@localhost ~]$ ps aux |grep crond
root 22319 0.0 0.1 124140 1568 ? Ss 14:54 0:00 /usr/sbin/crond -n
yang 22427 0.0 0.0 112648 964 pts/2 R+ 15:07 0:00 grep --color=auto crond

2 暂停计划任务程序。
[root@localhost ~]$ 
[root@localhost ~]$ sudo kill -19 22319
[root@localhost ~]$ ps aux |grep crond
root 22319 0.0 0.1 124140 1568 ? Ts 14:54 0:00 /usr/sbin/crond -n
yang 22431 0.0 0.0 112648 964 pts/2 R+ 15:07 0:00 grep --color=auto crond

3 继续计划任务程序。观察状态
[root@localhost ~]$ 
[root@localhost ~]$ sudo kill -cont 22319
[root@localhost ~]$ ps aux |grep crond
root 22319 0.0 0.1 124140 1568 ? Ss 14:54 0:00 /usr/sbin/crond -n
yang 22436 0.0 0.0 112648 960 pts/2 R+ 15:08 0:00 grep --color=auto crond
总结:kill带ID,killall带程序名称
kill (PID or Job ID)  killall (name)
使用top杀死一个进程
top也可杀死进程
1 请使用一个终端,开启一个进程。
[aofa@localhost ~]$ sleep 10000

2 在另一个终端查询并杀死该进程。
[root@localhost ~]# ps aux | grep sleep
root       2004  0.0  0.0 107896   604 ?        S    06:51   0:00 sleep 60
aofa       2058  0.0  0.0 107896   604 pts/2    S+   06:52   0:00 sleep 10000
root       2063  0.0  0.0 112664   972 pts/1    R+   06:52   0:00 grep --color=auto sleep

3 通过top杀死该进程。
[root@localhost ~]# top -d 1 -p 2058
k
9
回车
screen
示例2:使用屏风程序,管理远程主机。防止远程掉线
[root@tianyun ~]# ssh 172.16.50.240
[root@www ~]# yum -y install screen
[root@www ~]# screen -S install_apache //-S启动会话的名字
sleep 9000

==断网后,重新连接==
[root@www ~]# screen -list
There are screens on:
28958.install_nginx (Detached)
29013.install_apache (Detached)
2 Sockets in /var/run/screen/S-root.

[root@www ~]# screen -r 29013
文件系统proc
查看CPU
1.lscpu
2.grep 'processor' /proc/cpuinfo 逻辑CPU的个数
3.grep 'physical id ' /proc/cpuinfo 物理CPU的个数

查看内存
1.free -m

查看内核
cat /proc/cmdline

查看CPU使用率
uptime

查看网络 
cat /proc/sys/net/ipv4/ip_forward

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