linux-进程管理

柔情痞子 提交于 2020-03-25 15:42:36

进程管理
查看进程
进程控制
作业控制
进程优先级

======================================

ps process snapshot

查看当前终端上运行的进程
#ps 
#ps aux
#ps auxf

a 只能查看所有终端进程
u 显示进程拥有者
x 显示系统内所有进程
f  显示进程之间的父子关系(使用pstree查看更详细的父子关系)

user 进程拥有者
pid  process identify
TTY  进程在哪个终端运行
     查看tty的方法:
     #tty
     ? 表示这个进程开启的时候没有占用终端

time 进程占用cpu的总时间
cmd  进程名称
%cpu 进程占用的cpu百分比
%mem 进程占用memory百分比
VSZ  进程占用的虚拟内存大小
RSS  占用的物理内存大小
STAT 当前进程状态
     #man ps
     R running
     S sleep
     T stop  
     Z zombie(僵死,僵尸)

        D    Uninterruptible sleep (usually IO)
        R    Running or runnable (on run queue)
        S    Interruptible sleep (waiting for an event to complete)
        T    Stopped, either by a job control signal or because it is
        being traced.
        W    paging (not valid since the 2.6.xx kernel)
        X    dead (should never be seen)
        Z    Defunct ("zombie") process, terminated but not reaped by
        its parent.
        <    high-priority (not nice to other users)
        N    low-priority (nice to other users)
        L    has pages locked into memory (for real-time and
                custom IO)
        s    is a session leader
        l    is multi-threaded (using CLONE_THREAD, like NPTL
                pthreads do)
        +    is in the foreground process group

按指定字段排序:
[root@wing ~]# ps aux --sort %cpu | less
[root@wing ~]# ps aux --sort %-cpu | less

显示指定字段:
[root@wing ~]# ps  axo user,%cpu,command --sort -%cpu | less
[root@wing ~]# ps  -eo user,%cpu,%mem,command --sort %cpu

#ps -elf
-e  显示所有进程    
-l  长格式显示
-f  完整格式    
#ps -e 常用

pstree
查看进程树
#pstree
-a 显示参数
-p 显示pid
-u 显示用户名

lsof(应用范围有限,只能查看带端口的进程)
lsof -i:80
查看端口为80的进程

pidof
#pidof 进程名称

pgrep

pgrep -l eyes

1179 xeyes

进程pid文件
#cd /var/run

cat /var/run/httpd/httpd.pid

12265

======================================
w
[root@server ~]# w
16:51:43 up 8:30, 7 users, load average: 0.11, 0.27, 0.30
USER TTY FROM LOGIN@ IDLE JCPU
PCPU WHAT
root :0 :0 08:22 ?xdm? 29:39 0.23s
gdm-session-
root pts/0 :0 14:13 1:43 0.30s 0.30s bash
root pts/1 :0 11:19 5:19 0.62s 0.62s bash
root pts/2 :0 14:13 1:39m 0.06s 0.01s less
root pts/3 :0 14:54 7.00s 0.06s 0.01s w
root pts/4 :0 16:25 25:51 0.06s 0.06s bash
root pts/5 :0 16:40 7:11 0.24s 0.24s bash

======================================

who
[root@server ~]# who
root :0 2017-11-27 08:22 (:0)
root pts/0 2017-11-27 14:13 (:0)
root pts/1 2017-11-27 11:19 (:0)
root pts/2 2017-11-27 14:13 (:0)
root pts/3 2017-11-27 14:54 (:0)
root pts/4 2017-11-27 16:25 (:0)
root pts/5 2017-11-27 16:40 (:0)

======================================

users
[root@server ~]# users
root root root root root root root

======================================

top
实时的查看进程的状态
h|? 帮助

往下翻页
< 往上翻页
M 按内存排序
P 按cpu排序
k 输入pid杀死进程
h 打印帮助
q 退出

1 
f
W

R  排序反转   
z  彩色显示
r   调整进程的nice优先级

[root@wing ~]# top -d 2 -p 1068 -bn1
[root@wing ~]# top  -u apache                       

======================================
进程控制
按pid杀死进程
#kill 信号(signal) pid
-1 HUP 重新加载进程或者重新加载配置文件
-9 KILL 强制杀死
-15 TERM 正常杀死(这个信号可以默认不写)
-18 CONT 激活进程
-19 STOP 挂起进程
#kill -HUP pid
#kill -STOP pid

#kill -l
#man 7 signal 所有信号的解释

#killall 信号 进程名称

#pkill -9 进程名称
#pkill -t 终端  
不加-9只杀死在终端上运行的进程,加-9连终端本身一起干掉
#pkill -u 用户名称
#xkill

======================================
作业控制:
作业控制之jobs:
ctrl+z 把程序放到后台(这方法会让程序在后台暂停)
#fg %1 把程序调到前台,%是用来修饰job number,1就是job number。
#jobs 查看工作号
#bg %1 让暂停的程序在后台运行
#kill -9 %1
#kill -9 pid

作业控制之screen:
screen提供会话恢复和多窗口功能,本节讲解常用的会话恢复功能

#yum install screen -y

实例:
开启screen会话
[root@wing ~]#screen -S  lala             //给screen起个名字叫lala
[root@wing ~]# ssh 192.168.245.3     //远程连到245.3这台机器
root@192.168.245.3's password: 
Last login: Sun Nov 26 19:48:39 2017 from 192.168.245.137
[root@master ~]# vim aa.txt              //编辑一个文件,在没有编辑完的情况下关闭终端

恢复screen会话:
[root@wing ~]# screen -list
There are screens on:
    39160.lala  (Attached)
    38966.pts-0.wing    (Detached)
2 Sockets in /var/run/screen/S-root.

[root@wing ~]# screen -r 38966          //38966是screen lala中运行的会话进程
回车后神奇恢复被意外中断的会话

======================================
进程优先级

优先级本身是"不能"修改,通过nice值修改优先级。
普通账户只能调高nice值,不能往低调
root账户随便调
nice值越高,优先级越低。
nice值范围:-20到19

查看进程优先级
    # top
    # ps axo pid,command,nice  --sort=-nice | less
    # ps -elf
    PR:priority
    NI:nice

指定进程优先级
    #nice --15 firefox &   
修改进程优先级
    # renice 10 7116   nice值前面不能加-

netstat
查看网络进程
#netstat -auntpl
-a 所有进程
-u udp
-t tcp
-n 以数字形式显示协议名称
-p 显示进程的名称和PID
-l 只显示正在被监听的端口

#netstat -auntpl | grep 22


ss  推荐使用
查看网络进程
#netstat  -auntpl  
-a 所有进程
-u udp
-t  tcp
-n 以数字形式显示协议名称  
-p 显示进程的名称和PID
-l  只显示正在被监听的端口
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!