首页 > 代码库 > Linux之进程管理

Linux之进程管理

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

一 查看进程

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

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

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

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

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

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

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


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

  PID TTY          TIME CMD

 2838 pts/0    00:00:00 bash

 5252 pts/0    00:00:00 ps

[root@localhost ~]# ps aux                        #以列表的形式显示出进程信息

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

[root@localhost ~]# ps aux | grep mysqld          #查看mysqld进程信息


2 top:查看进程动态信息

[root@localhost ~]# top


3 pgrep:查询特定进程信息

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

      -U    查询特定用户的进程

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

5531 mysqld_safe

5633 mysqld

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


4 pstree:查看进程树

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

      -u    显示对应的用户名

      -p    显示进程ID号

[root@localhost ~]# pstree                        #显示进程树

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

[root@localhost ~]# 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 &:后台启动进程

[root@localhost ~]# cp -R /etc/ ./ &                    #进程后台启动

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


2 终止进程

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


使用命令中止进程:

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

[root@localhost ~]# kill 5633                           #终止PID为5633的进程

[root@localhost ~]# kill -9 7582                        #-9意味着强行终止,慎用

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


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

[root@localhost ~]# killall master                      #终止进程,后面是进程名称

[root@localhost ~]# killall -9 master                   #-9:强行终止              

[root@localhost ~]# killall -s QUIT mysqld              #从容停止某项服务


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

[root@localhost ~]# pkill mysqld                        #终止进程

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


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

Linux之进程管理