Linux之进程管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux之进程管理相关的知识,希望对你有一定的参考价值。

    程序是保存在外部存储设备(如硬盘)中的可执行机器代码和数据的集合。而进程是在CPU及内存中处于动态执行状态的计算机程序。每个程序启动后会产生一个或多个进程,如httpd程序,当有大量用户访问Web页面时,httpd程序会产生多个进程来提供服务。

一 查看进程

1 ps:查看静态的进程信息

选项:a    显示当前终端下所有的进程信息

      u    使用以用户为主的格式输出进程信息

      x    显示当前用户在所有终端下的进程信息

      -e   显示系统内所有进程信息

      -l   使用长格式显示进程信息

      -f   使用完整的格式显示进程信息


[[email protected] ~]# ps                            #只显示当前用户会话中打开的进程

  PID TTY          TIME CMD

 2838 pts/0    00:00:00 bash

 5252 pts/0    00:00:00 ps

[[email protected] ~]# ps aux                        #以列表的形式显示出进程信息

[[email protected] ~]# ps -elf                       #使用长格式显示进程的详细信息

[[email protected] ~]# ps aux | grep mysqld          #查看mysqld进程信息


2 top:查看进程动态信息

[[email protected] ~]# top


3 pgrep:查询特定进程信息

选项:-l    长格式输出,查询所有匹配进程的名称和进程ID

      -U    查询特定用户的进程

[[email protected] ~]# pgrep -l "my"                 #查询名称中包含"my"的进程信息

5531 mysqld_safe

5633 mysqld

[[email protected] ~]# pgrep -l -U root              #查询root用户的进程名称和ID号


4 pstree:查看进程树

选项:-a    列出完整的命令信息

      -u    显示对应的用户名

      -p    显示进程ID号

[[email protected] ~]# pstree                        #显示进程树

[[email protected] ~]# pstree -aup                   #显示进程树详细信息,包括PID,用户、命令

[[email protected] ~]# pstree -aup mysql             #指定用户,列出由用户mysql打开的进程结构

mysqld,5633 --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock

  ├─{mysqld},5635

  ├─{mysqld},5636

  ├─{mysqld},5637

  ├─{mysqld},5638

  ├─{mysqld},5645

  ├─{mysqld},5646

  ├─{mysqld},5647

  ├─{mysqld},5648

  └─{mysqld},5649


二 管理进程

1 &:后台启动进程

[[email protected] ~]# cp -R /etc/ ./ &                    #进程后台启动

[[email protected] ~]# jobs -l                             #查看后台运行的进程,-l显示PID号


2 终止进程

ctrl+c:中断进程,向进程发出SIGINT信号


使用命令中止进程:

kill:使用kill终止进程时需要PID号作为参数

[[email protected] ~]# kill 5633                           #终止PID为5633的进程

[[email protected] ~]# kill -9 7582                        #-9意味着强行终止,慎用

[[email protected] ~]# kill -s QUIT 7849                   #向进程发送QUIT信号,从容停止


killall:可以通过进程名来终止进程

[[email protected] ~]# killall master                      #终止进程,后面是进程名称

[[email protected] ~]# killall -9 master                   #-9:强行终止              

[[email protected] ~]# killall -s QUIT mysqld              #从容停止某项服务


pkill:可以根据进程的名称、运行该进程的用户等属性终止该进程

[[email protected] ~]# pkill mysqld                        #终止进程

[[email protected] ~]# pkill -U "zwj"                      #终止用户zwj启动的进程,-9强制终止         


本文出自 “一万年太久,只争朝夕” 博客,请务必保留此出处http://zengwj1949.blog.51cto.com/10747365/1917070

以上是关于Linux之进程管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux性能及调优指南(翻译)之Linux进程管理

Linux之进程管理基本介绍

Linux之进程管理作业管理

linux进程管理之进程创建

linux进程管理之进程查看

Linux 进程管理之进程调度与切换