美文网首页技术分享
Linux中查看进程与日志

Linux中查看进程与日志

作者: 奔跑的痕迹 | 来源:发表于2021-05-08 14:50 被阅读0次

    Linux尽管使用频繁,仍然每次都还是需要到处去找相关的命令,如进程,日志之类的,既然这样不妨自己纪录下便于下次使用

    一、查看进程

    一、ps(Process Status)

    首先我们要了解 Linux中查看进程信息的基本命令 ps、top,其中ps(Process Status)查看的是进程信息的一个快照,显示的我们执行ps这个命令时进程的信息,top显示的是进程的动态信息,使用这个命令会看到进程信息的动态变化。

    二、ps -ef|grep

    ps -ef|grep *** 查看某个进程

    很多时候我们在linux 中运行玩一个应用是需要知道他是否成功

    比如我们 进入tomcat > bin 目录下
    执行./startup.sh启动tomcat

        [root@localhost bin]# ./startup.sh
    

    然后想要查看当前的tomcat 进程是否启动, 你们就需要ps了

    [root@localhost bin]# ps -ef|grep tomcat
    

    运行如:

    test

    三、 ps -l

    ps -l 列出与 本次登录系统 有关的进程信息
    ps ( ps -l, 列出的是详细信息 )

    运行如:

    test

    其他相关参数:


    F 代表这个程序的旗标 (flag), 4 代表使用者为 superuser;
    S代表这个程序的状态 (STAT);
    ( 常见的进程的 STAT 如下:
    R 运行 Runnable (on run queue) 正在运行或在运行队列中等待,
    S 睡眠 Sleeping 休眠中, 受阻, 在等待某个条件的形成或接受到信号,
    I 空闲 Idle ,
    Z 僵死 Zombie(a defunct process) 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放,
    D 不可中断 Uninterruptible sleep (ususally IO) 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生,
    T 终止 Terminate 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行,
    P 等待交换页 ,
    W无驻留页 has no resident pages 没有足够的记忆体分页可分配,
    X 死掉的进程 ,
    <高优先级进程 高优先序的进程 ,
    N 低优先 级进程 低优先序的进程 ,
    L 内存锁页 Lock 有记忆体分页分配并缩在记忆体内 ,
    s进程的领导者(在它之下有子进程),
    l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads)

    四、ps -aux

    1、ps -aux 列出在内存中运行的 全部进程信息

    运行如:

    test
    2、 ps -aux | grep *** 列出 某个 进程的详细信息

    运行如:

    test

    其中每一项参数对应的实际意义
    如:

    [root@localhost logs]# ps -aux
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root         1  0.0  0.0 194128  7272 ?        Ss   Jun24   0:43 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
    
    

    USER:进程的所属用户,
    PID :进程的进程ID号,
    %CPU :进程占用的 CPU资源 百分比,
    %MEM :进程占用的 物理内存 百分比,
    VSZ :进程使用掉的虚拟内存量 (Kbytes) ,
    RSS :进程占用的固定的内存量 (Kbytes) ,
    TTY :与进程相关联的终端(tty),?代表无关,tty1-tty6是本机上面的登入者程序,pts/0表示为由网络连接进主机的程序。
    STAT :进程的状态,具体见2.1列出来的部分 ,
    START :进程开始创建的时间 ,
    TIME :进程使用的总cpu时间,
    COMMAND: 进程对应的实际程序。

    五、 ps to

    ps top动态显示内存中的进程信息(top)

    运行如:

    test

    六、 kill -9 pid

    kill -9 pid 杀死进程
    其他相关操作

    其中pid 对应的是每个进程的编号

    比如查看tomcat 对应进程号
    可以通过[root@localhost logs]# ps -aux|grep tomcat或者 [root@localhost logs]# ps -ef|grep tomcat进行进程查询

    运行如:

    test
    如果想强行关闭 root 6722 43589 0 19:22 pts/1 00:00:00 grep --color=auto tomcat 就可以执行kill -9 6722 来强行杀掉改进程
    注: 有些进程是不允许停止的,因为停止会造成系统的不稳定,甚至崩溃。

    二、查看日志

    一、tail -f catalina.out

    很多时候需要知道一个程序运行后的一下信息,如tomcat 后的项目接口调用情况

    1. 进入tomcat > bin 目录下
      执行./startup.sh 启动tomcat

      运行如:

      test
    2. 查看tomcat启动日志

    1、先切换到:cd 当前的tomcat目录/logs

    2、tail -f catalina.out 或者指定查多少行:tail -200 catalina.out

    [root@localhost apache-tomcat-9.0.31]# cd logs
    [root@localhost logs]# tail -f catalina.out
    

    运行如:

    test
    [root@localhost logs]# tail -f -n 200  catalina.out
    

    运行如:

    test
    比如每次的tomcat 关闭也可以清楚看到: test

    二、tail 参数

    查看看日志参数:

    -f循环读取

    -q不显示处理信息

    -v显示详细的处理信息

    -c<数目> 显示的字节数

    -n<行数> 显示行数

    --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.

    -q, --quiet, --silent从不输出给出文件名的首部

    -s, --sleep-interval=S-f 合用,表示在每次反复的间隔休眠S秒

    三、关键词高亮显示

     tail -n 200 -f dpe_partner_all.log | perl -pe 's/(关键词)/\e[1;31m$1\e[0m/g'
    

    例如高亮显示ERROR

    tail -n 200 -f dpe_partner_all.log | perl -pe 's/(ERROR)/\e[1;31m$1\e[0m/g'
    

    先看看我们目前有哪些日志文件了


    test

    假如我要查看catalina.out 文件,同时高亮显示 java.lang.IllegalArgumentException,那么就可以这样:

    
    tail -n 200 -f  catalina.out| perl -pe 's/(java.lang.IllegalArgumentException)/\e[1;31m$1\e[0m/g'
    
    

    运行如:

    test

    好了个人基本 操作纪录完毕,下次再会哈哈^_^

    相关文章

      网友评论

        本文标题:Linux中查看进程与日志

        本文链接:https://www.haomeiwen.com/subject/ykpudltx.html