首页 > 代码库 > 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之进程管理