- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
进程管理
ps -aux显示系统执行的进程
基本介绍
ps显示的信息选项
参数说明 :
ps -ef全格式显示所有进程
终止进程kill和killall
常用选项
pstree查看进程树
常用选项:
基本介绍
1、在linux中,每个执行的程序都称为一个进程。每一个进程都分配一个ID号(pid,进程号)。
2、每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
3.一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。
程序加载到内存就成了进程,程序是静态的,而进程是动态的,前台可以理解为占有这个屏幕直到退出才能做别的事情。后台是一般看不见的,作用是供各种各样的网络服务,比如mysql、tomcat等。
ps命令是用来查看目前系统中,有哪些正在执行,以及他们执行的状态,可以不加任何参数。
[root@kongchao03 ~]# ps
PID TTY TIME CMD
7785 pts/0 00:00:00 bash
7829 pts/0 00:00:00 ps
[root@kongchao03 ~]#
| 字段 | 说明 |
| PID | 进程识别号 |
| TTY | 终端机号 |
| TIME | 此进程所消耗CPU时间 |
| CMD | 正在执行的命令或进程 |
| 指令 | 说明 |
| ps -a | 显示当前终端的所有进程信息 |
| ps -u | 以用户的格式显示进程信息 |
| ps -x | 显示后台进程运行的参数 |
以上三个参数也可以组合使用 ps -aux
[root@kongchao03 ~]# ps -a
PID TTY TIME CMD
8038 pts/0 00:00:00 ps
[root@kongchao03 ~]# ps -u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2746 0.2 1.4 325900 29256 tty1 Ssl+ 08:04 0:09 /usr/bin/X :0
root 7785 0.0 0.1 116692 3364 pts/0 Ss 09:05 0:00 bash
root 8045 0.0 0.0 151064 1824 pts/0 R+ 09:10 0:00 ps -u
[root@kongchao03 ~]# ps -s
UID PID PENDING BLOCKED IGNORED CAUGHT STAT TTY TIME COMMAND
0 2746 00000000 00000000 00301000 <c18066cf Ssl+ tty1 0:09 /usr/b
0 7785 00000000 00010000 00384004 4b813efb Ss pts/0 0:00 bash
0 8052 00000000 00000000 00000000 <f3d1fef9 R+ pts/0 0:00 ps -s
[root@kongchao03 ~]#
| 参数 | 说明 |
| USER | 进程执行的用户 |
| PID | 进程号 |
| %CPU | 占用cpu的百分比 |
| %MEM | 占用物理内存的百分比 |
| VSZ | 占用虚拟内存的大小(kb) |
| RSS | 占用物理内存的大小(kb) |
| TTY | 终端名称,缩写 |
| STAT | 运行状态,S-表示sleep表示休眠,s-表示该进程是先到进程,N-表示进程拥有比普通优先级更低的优先级,R表示运行状态,D-短期等待,Z-僵死进程,T-被跟踪或被停止等 |
| TIME | 占用cpu时间 |
| START | 执行开始的时间 |
| COMMAND | 进程名,执行该进程的指令 |
注意:COMMADN列如果过长,aux会截断显示,而ef不会
一般使用过滤查找更加的方便:
ps -ef |grep xxx
PID PPID C STIME TTY TIME CMD
root 3096 2931 0 14:20 pts/0 00:00:00 grep --color=auto PID
[root@kongchao02 ~]#
ps -ef 是以全格式显示当前所有的进程
-e显示所有进程,-f 全格式
| 参数 | 说明 |
| UID | 用户ID |
| PID | 进程ID |
| <br>PPID<br> | 父进程ID |
| C | CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小。表明进程是I/O密集型运算,执行优先级会提高 |
| STIME | 进程启动的时间 |
| TTY | 完整的终端名称 |
| TIME | CPU时间 |
| CMD | 启动进程所用的命令和参数 |
介绍:
若是某个进程执行一半需要停止时,或是已消耗了很大的系统资源时,此时可以考虑停止该进程,使用kill命令来完成此项任务
语法:kill [选项] 进程号 (解释:通过进程号杀死进程)
语法:** kilall 进程名称 ** (通过进程名称杀死进程,也支持通配符,这在系统因负载过大变得很缓慢是用处大,其下的子进程也会终止)
-9:表示强迫进程立即停止
示例:终止多个gedit,killall指令
案例2:踢掉某个非法登录用户
kill 进程号
示例:强制终止终端 kill -9 bash 对应的进程号
基本语法:pstree [选项],可以更加直观来查看进程信息
-p:显示进程PID
-u:显示进程的所属用户
示例1:以树状的形式显示所有进程的pid
systemd(1)─┬─ModemManager(580)─┬─{ModemManager}(599)
│ └─{ModemManager}(615)
├─NetworkManager(729)─┬─{NetworkManager}(735)
│ └─{NetworkManager}(739)
├─VGAuthService(627)
├─abrt-watch-log(583)
├─abrt-watch-log(624)
├─abrtd(579)
├─accounts-daemon(591)─┬─{accounts-daemon}(600)
│ └─{accounts-daemon}(616)
├─alsactl(588)
├─at-spi-bus-laun(1941)─┬─dbus-daemon(1946)───{dbus-daemon}(1947)
│ ├─{at-spi-bus-laun}(1942)
│ ├─{at-spi-bus-laun}(1943)
│ └─{at-spi-bus-laun}(1945)
├─at-spi2-registr(1949)─┬─{at-spi2-registr}(1953)
│ └─{at-spi2-registr}(1955)
├─atd(1046)
├─auditd(551)─┬─audispd(553)─┬─sedispatch(555)
│ │ └─{audispd}(556)
│ └─{auditd}(552)
├─avahi-daemon(582)───avahi-daemon(598)
├─boltd(1566)─┬─{boltd}(1570)
│ └─{boltd}(1575)
├─chronyd(606)
├─colord(1661)─┬─{colord}(1666)
│ └─{colord}(1670)
.....
.....
示例2:以树状的形式显示进程的用户
[root@kongchao02 ~]# pstree -u
systemd─┬─ModemManager───2*[{ModemManager}]
├─NetworkManager─┬─dhclient
│ └─2*[{NetworkManager}]
├─VGAuthService
├─2*[abrt-watch-log]
├─abrtd
├─accounts-daemon───2*[{accounts-daemon}]
├─alsactl
├─at-spi-bus-laun─┬─dbus-daemon───{dbus-daemon}
│ └─3*[{at-spi-bus-laun}]
├─at-spi2-registr───2*[{at-spi2-registr}]
├─atd
├─auditd─┬─audispd─┬─sedispatch
│ │ └─{audispd}
│ └─{auditd}
├─avahi-daemon(avahi)───avahi-daemon
├─boltd───2*[{boltd}]
├─chronyd(chrony)
├─colord(colord)───2*[{colord}]
├─crond
├─cupsd
├─dbus-daemon───{dbus-daemon}
├─dbus-daemon(dbus)───{dbus-daemon}
├─dbus-launch
.......
.......
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
Linux 管道可以缓冲多少数据?这是可配置的吗? 如果管道的两端在同一个进程中,但线程不同,这会有什么不同吗? 请注意:这个“同一个进程,两个线程”的问题是理论上的边栏,真正的问题是关于缓冲的。 最
我找到了here [最后一页] 一种有趣的通过 Linux 启动 Linux 的方法。不幸的是,它只是被提及,我在网上找不到任何有用的链接。那么有人听说过一种避免引导加载程序而使用 Linux 的方法
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我试图了解 ld-linux.so 如何在 Linux 上解析对版本化符号的引用。我有以下文件: 测试.c: void f(); int main() { f(); } a.c 和 b.c:
与 RetroPie 的工作原理类似,我可以使用 Linux 应用程序作为我的桌面环境吗?我实际上并不需要像实际桌面和安装应用程序这样的东西。我只需要一种干净简单的方法来在 RaspberryPi 上
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
有什么方法可以覆盖现有的源代码,我应该用 PyQt、PyGTK、Java 等从头开始构建吗? 最佳答案 如果您指的是软件本身而不是它所连接的存储库,那么自定义应用程序的方法就是 fork 项目。据我所
我的情况是:我在一个磁盘上安装了两个 linux。我将第一个安装在/dev/sda1 中,然后在/dev/sda2 中安装第二个然后我运行第一个系统,我写了一个脚本来在第一个系统运行时更新它。
我在 i2c-0 总线上使用地址为 0x3f 的系统监视器设备。该设备在设备树中配置有 pmbus 驱动程序。 问题是,加载 linux 内核时,这个“Sysmon”设备没有供电。因此,当我在总线 0
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
我正试图在 linux 模块中分配一大块内存,而 kalloc 做不到。 我知道唯一的方法是使用 alloc_bootmem(unsigned long size) 但我只能从 linux 内核而不是
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我有 .sh 文件来运行应用程序。在该文件中,我想动态设置服务器名称,而不是每次都配置。 我尝试了以下方法,它在 CentOS 中运行良好。 nohup /voip/java/jdk1.8.0_71/
我是在 Linux 上开发嵌入式 C++ 程序的新手。我有我的 Debian 操作系统,我在其中开发和编译了我的 C++ 项目(一个简单的控制台进程)。 我想将我的应用程序放到另一个 Debian 操
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 4 年前。 Improve this ques
我使用4.19.78版本的稳定内核,我想找到带有企鹅二进制数据的C数组。系统启动时显示。我需要在哪里搜索该内容? 我在 include/linux/linux_logo.h 文件中只找到了一些 Log
我知道可以使用 gdb 的服务器模式远程调试代码,我知道可以调试针对另一种架构交叉编译的代码,但是是否可以更进一步,从远程调试 Linux 应用程序OS X 使用 gdbserver? 最佳答案 当然
是否有任何可能的方法来运行在另一个 Linux 上编译的二进制文件?我知道当然最简单的是在另一台机器上重建它,但假设我们唯一能得到的是一个二进制文件,那么这可能与否? (我知道这可能并不容易,但我只是
我是一名优秀的程序员,十分优秀!