美文网首页Linux小推车
Linux(十一):进程管理

Linux(十一):进程管理

作者: 末池桑 | 来源:发表于2019-08-12 23:52 被阅读0次

使用 Windows 时,经常会出现莫名其妙程序卡死无响应的状态,这个时候我们都需要调出任务管理器来强制终止进程,这其实就是 Windows 下的一个进程管理办法。相对的 Linux 下也有进程管理,面对服务器黑压压的命令行界面,我们没法像 Windows 一样调出一个 UI 界面来管理进程,所以熟练掌握 Linux 下的进程管理命令是非常重要的。

一、显示当前系统进程

  • 1. 使用 ps 命令即可打印出相关进程信息,相关命令内容和参数如下:
 PID :进程识别号
 TTY :终端机号
 TIME:此进程消耗的 CPU 时间
 CMD :正在执行的命令或者进程名
  • 2. ps 命令常用参数内容如下:
# 一般我们都会使用 ps -aux |more 命令查看进程信息
-a  : 显示当前终端的所有进程信息
-u  : 以用户的格式显示进程信息
-x  : 显示后台进程运行的参数

其中第一行每一列的详细信息分别如下:

USER :  用户名
 PID :  进程号
%CPU :  进程占用 CPU 百分比
%MEM :  进程占用物理内存百分比
 VSZ :  进程占用虚拟内存大小(KB)
 RSS :  进程占用的物理内存大小(KB)
 TTY :  终端名称
STAT :  进程状态(S-睡眠,s-表示该进程是回话先导进程,R-正在运行,D-等待运行,
         N-表示进程有比普通进程优先级更低的优先级,Z-僵死进程,T-被跟踪or被终止等待)
START:  进程启动时间
TIME :  进程使用 CPU 的时间
COMMAND : 启动进程时所用的命令和参数,过长会被截断显示
  • 3. 全格式的形式显示当前所有进程
ps -ef 
-e:  显示所有进程
-f : 全格式显示
UID :用户名
PID :进程号
PPID :父进程号
C :  CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,
      执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高。
STIME :进程启动的时间
TTY :  终端名称
TIME : CPU时间
CMD :  启动进程时所用的命令和参数

二、终止进程

  • 1. kill 和 killall 命令可以用来杀死进程,命令详细内容如下:
# 通过进程号杀死进程
kill PID 
# 强制杀死进程
kill -9 PID 
# 通过进程名可以杀死多个进程
killall 进程名

三、进程树

pstree 命令可以调出进程树,以便更直观的看到进程信息,命令详情如下:

# 显示进程树
pstree   
-p :显示进程 ID
-u :显示进程所属用户
pstree -pu

四、服务管理

服务的本质其实就是后台运行的进程,一般都会监听某个端口,等待其他程序发送过来的请求, 例如:MySQL、Web服务、Ngnix、防火墙等,这些其实都是运行在计算机后台的程序,也称守护进程。

  • 1. service 指令详情如下:
# 启动 mysql 服务
service mysql.server start
# 停止mysql 服务
service mysql.server stop
# 重新启动 mysql 服务
service mysql.server restart
# 查看 mysql 服务状态
service mysql.server status
# 启动 mysql 服务
service mysql.server reload

注: CentOS 7之后,不再使用 service ,而是 systemctl

  • 2. 查看服务名
    进程服务文件都存在了 /etc/init.d 目录下,使用如下命令即可看到所有的服务名:
ls -l /etc/init.d

五、运行级别

  • 1. CentOS 6 有 7 个运行级别,详细如下(3、5级别是常见的):
0 : 系统停机状态,系统默认运行级别不能设为 0,否则不能正常启动
1 : 单用户工作状态,root 权限,用于系统维护,禁止远程登陆
2 : 多用户状态(没有 NFS),不支持网络
3 : 完全的多用户状态(有 NFS),登陆后进入控制台命令行模式
4 : 系统未使用,保留
5 : X11 控制台,登陆后进入图形 GUI 模式
6 : 系统正常关闭并重启,默认运行级别不能设为 6,否则不能正常启动

Linux 开机全过程:
开机 > BIOS > /boot > init 进程 > 运行级别 > 运行级别对应的服务

  • 2. chkconfig 指令
    chkconfig 命令可以给每个服务在不通运行级别下设置自启动或者关闭,指令详细内容如下:
# 查看服务
chkconfig --list  
# 按服务名查看某个服务启动状态
chkconfig --list |grep ssrmu
chkconfig ssrmu --list 

修改服务自启动状态,可以使用如下命令:

# 所有级别下 打开/关闭 serviceName 服务自启动
chkconfig sevicrName on/off
# 打开/关闭 serviceName 服务在 int 运行级别下的自启动
chkconfig --level int serviceName on/off

六、查看OS版本

不同的os发行版可能会有略微的差别,配置文件位置以及命令可能有所区别,这里提供查询OS版本的命令。

cat /etc/issue
cat /proc/version
uname -a 
uname -s

七、动态监控进程

  • 1. 使用 top 命令便可以动态的监控进程状态,top 和 ps 最大的区别就在于此,top 每隔一段时间会刷新正在运行的进程,并且可以做相关操作,命令参数详细如下:
-d int : 指定 top 命令
-i  : 使 top 不显示任何闲置或者僵死进程
-p : 指定 PID 来监视某个进程的状态
  • 2. top 命令交互操作按键:
P     以 CPU 使用率排序(默认)
M     以内存使用率排序
N     以 PID 排序
q     退出top
K     按 k 键可以输入 PID 杀死进程

八、查看系统网络情况

  • 1. 使用 netstat 可以查看当前的网络情况,命令详情如下:
 # 查看网络详情
netstat -anp
-an :按一定顺序排列输出
-p  :显示哪个进程在调用
-t  :和 tcp 有关 
-d  : 和 udp 有关
  • 2. 使用 netstat -anp |grep electron-ssr 组合命令可以查看某个进程的网路情况,结果去下图:

九、后台运行进程

    1. &
      在命令的最后面加入这个符号,此命令便会在后台执行
    1. ctrl + z
      将一个终端执行的命令挂起放到后台,此时这个命令(程序)是处于暂停状态的,不可以执行。
    1. jobs
      查看当前有多少后台执行的命令,jobs -l 可以显示命令的 PID 。
    1. fg
      将后台中的命令调至前台继续运行,假若有多个后台运行的命令,可以使用 fg int 来将相应的命令调出到终端,int 值是使用 jobs 命令时的序号(非 PID)。
    1. bg
      将一个在后台暂停的命令,变成继续执行 (在后台执行),假若有多个后台运行的命令,可以使用 bg int 来将相应命令放到后台执行,int 值是使用 jobs 命令时的序号(非 PID)。

注:先 ctrl + z 将命令挂起到后台,再使用 bg 就可以让其继续在后台执行,使用 fg 又可以在终端执行。

    1. ctrl + c
      命令执行中途,可以中断命令的执行。
    1. ctrl + \
      退出命令
    1. ctrl + d
      退出终端,作用相当于在终端中输入exit后回车
    1. ctrl + s
      中断控制台输出
    1. ctrl + q
      恢复控制台输出
    1. ctrl + l
      清屏,相当于 clear

相关文章

网友评论

    本文标题:Linux(十一):进程管理

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