linux进程管理

简介: linux进程管理

linux进程管理

一.pstree查看进程


pstree查看进程   
  常用命令选项
  -a:显示完整的命令行
  -p:列出对应进程的PID编号

[root@www ~]# pstree -p zhangsan
bash(39290)───su(51704)───bash(51726)───pstree(73981)
[root@www ~]# pstree -a zhangsan
bash
  └─su - root
      └─bash
          └─pstree -a zhangsan
[root@www ~]# pstree -ap zhangsan
bash,39290
  └─su,51704 - root
      └─bash,51726
          └─pstree,74145 -ap zhangsan
[root@www ~]#

二、ps查看进程


ps — Processes Snapshot
格式:ps  [选项]...
常用命令选项
 aux:显示当前终端所有进程(a)、当前用户在所有终端下的进程(x)、以用户格式输出(u)
 -elf:显示系统内所有进程(-e)、以长格式输出(-l)信息、包括最完整的进程信息(-f)
 
ps  aux 操作
 列出正在运行的所有进程,显示进程信息非常详细
用户  进程ID  %CPU  %内存  虚拟内存  固定内存  终端  状态  起始时间  CPU时间  程序指令 
 
ps  -elf 操作
  列出正在运行的所有进程,显示进程父进程信息
  PPID为父进程的PID


[root@www ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.6 127984  6580 ?        Ss   00:37   0:01 /usr/lib/systemd/systemd --switched-root --system --deseriali
root          2  0.0  0.0      0     0 ?        S    00:37   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    00:37   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   00:37   0:00 [kworker/0:0H]
root          6  0.0  0.0      0     0 ?        S    00:37   0:02 [kworker/u256:0]
root          7  0.0  0.0      0     0 ?        S    00:37   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    00:37   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        R    00:37   0:01 [rcu_sched]


[root@www ~]# ps -elf
F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root          1      0  0  80   0 - 31996 ep_pol 00:37 ?        00:00:01 /usr/lib/systemd/systemd --switched-root --system
1 S root          2      0  0  80   0 -     0 kthrea 00:37 ?        00:00:00 [kthreadd]
1 S root          3      2  0  80   0 -     0 smpboo 00:37 ?        00:00:00 [ksoftirqd/0]
1 S root          5      2  0  60 -20 -     0 worker 00:37 ?        00:00:00 [kworker/0:0H]
1 S root          6      2  0  80   0 -     0 worker 00:37 ?        00:00:02 [kworker/u256:0]
1 S root          7      2  0 -40   - -     0 smpboo 00:37 ?        00:00:00 [migration/0]
1 S root          8      2  0  80   0 -     0 rcu_gp 00:37 ?        00:00:00 [rcu_bh]

三、top 交互式工具


格式:top  [-d  刷新秒数]  [-U  用户名]
 
按大写P进行CPU排序
按大写M进行内存排序
 
pgrep — Process Grep
 用途:pgrep  [选项]...  查询条件
常用命令选项
 -l:输出进程名,而不仅仅是 PID
 -U:检索指定用户的进程
 -x:精确匹配完整的进程名

 注意:U必须放到最后

四、控制进程(进程前后台的调度)


进程的前后台调度
  &符号:正在运行的状态放入后台
   Ctrl + z 组合键: 挂起当前进程(暂停并转入后台)
•    jobs 命令   查看后台任务列表
•    fg 命令     将后台任务恢复到前台运行
•    bg 命令    激活后台被挂起的任务
 
[root@localhost ~]# yum -y  install  xorg-x11-apps
[root@localhost ~]# xeyes
^Z             #按Ctrl+z  暂停放入后台,适用于程序已经在运行,我们可以按ctrl+z来停止
[1]+  已停止               xeyes
[root@localhost ~]# jobs     #查看后台进程信息
[root@localhost ~]# bg 1     #让后台编号为1 的进程继续运行,就是刚才ctrl+z暂停了,此时我们bg可以再启动
 
[root@localhost ~]# jobs     #查看后台进程信息
[root@localhost ~]# fg  1   #让后台编号为1 的进程恢复到前台
xeyes
^C           #按Ctrl+c   结束
[root@localhost ~]#
 

五、杀死进程


杀死进程的不同方法
 Ctrl+c 组合键,中断当前命令程序
 kill     [-9]  PID... 、kill  [-9]  %后台任务编号
 killall  [-9]  进程名...
 pkill    [-9]  查找条件 
 
[root@localhost ~]# xeyes &         #&符号为放入后台运行
[root@localhost ~]# xeyes &
[root@localhost ~]# xeyes &
 
[root@localhost ~]# jobs -l
[1]+  8999 运行中               xeyes &
[root@localhost ~]# kill -9  8999 
[1]+  已杀死               xeyes
[root@localhost ~]# jobs -l
[root@localhost ~]# killall    xeyes
 
 
杀死一个用户开启的所有进程(踢出一个用户)
[root@localhost ~]# killall -9 -u zhangsan
 
相关文章
|
4天前
|
人工智能 监控 Linux
【Linux】进程控制深度了解(下)
【Linux】进程控制深度了解(下)
20 6
|
3天前
|
Unix Linux
linux进程状态基本语法
linux进程状态基本语法
|
4天前
|
存储 缓存 安全
【Linux】冯诺依曼体系结构与操作系统及其进程
【Linux】冯诺依曼体系结构与操作系统及其进程
42 1
|
10天前
|
小程序 Linux
【编程小实验】利用Linux fork()与文件I/O:父进程与子进程协同实现高效cp命令(前半文件与后半文件并行复制)
这个小程序是在文件IO的基础上去结合父子进程的一个使用,利用父子进程相互独立的特点实现对数据不同的操作
|
10天前
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
|
14天前
|
Linux 数据处理 调度
深入探索Linux的renice命令:优化进程优先级
`renice`命令在Linux中用于调整运行进程的优先级,范围-20(最高)至19(最低)。它可以实时改变进程的优先级,无需重启,支持按PID、进程组或用户批量修改。例如,`renice -n 10 -p 1234`将PID为1234的进程优先级设为10。使用时要注意不要滥用高优先级,避免频繁修改,了解系统负载,并记录变更,通常需root权限。
|
15天前
|
缓存 Linux Shell
Linux进程控制
本文介绍了进程创建、等待、终止的方法,以及如何进行程序间进程替换。
12 0
Linux进程控制
|
3天前
|
缓存 Linux 编译器
【Linux】多线程——线程概念|进程VS线程|线程控制(下)
【Linux】多线程——线程概念|进程VS线程|线程控制(下)
11 0
|
3天前
|
存储 Linux 调度
【Linux】多线程——线程概念|进程VS线程|线程控制(上)
【Linux】多线程——线程概念|进程VS线程|线程控制(上)
14 0
|
3天前
|
存储 NoSQL Unix
【Linux】进程信号(下)
【Linux】进程信号(下)
16 0