Linux进程管理
2021/7/31 7:08:01
本文主要是介绍Linux进程管理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、进程
进程:运行的程序
守护进程:一直运行的程序
二、查看进程
1、ps命令
进程快照
常用: -e 显示所有进程※ -f 额外显示UID、PPID、C与STIME栏位※ 常用命令: # 1、ps -ef #简易查看进程,过滤进程的命令。 [root@linux ~]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 Jun02 ? 00:00:06 /usr/lib/systemd/systemd --system --des root 2 0 0 Jun02 ? 00:00:00 [kthreadd] root 4 2 0 Jun02 ? 00:00:00 [kworker/0:0H] root 6 2 0 Jun02 ? 00:00:09 [ksoftirqd/0] root 7 2 0 Jun02 ? 00:00:00 [migration/0] root 8 2 0 Jun02 ? 00:00:00 [rcu_bh] 输出信息中各列的说明如下。 UID:开启该进程的用户id PID:进程的标识号,进程id PPID:父进程id C:CPU使用的资源百分比; STIME:进程开始的时间; TTY :该进程是在哪个终端机上面运作,若与终端机无关,则显示?,另外, tty1-tty6是本机上面的登入者进程,若为pts/0等,则表示为由网络连接进主机的进程; TIME:进程所使用的总的CPU时间; CMD:正在执行的命令行。 # 2、 ps aux #BSD格式参数,使用a选项和x选项显示所有进程,使用u选项显示进程的用户信息。 [root@linux ~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 46368 6700 ? Ss Jun02 0:06 systemd --system --deserialize 18 root 2 0.0 0.0 0 0 ? S Jun02 0:00 [kthreadd] root 4 0.0 0.0 0 0 ? S< Jun02 0:00 [kworker/0:0H] 输出信息中各列的说明如下。 USER:该进程属于的用户; PID :该进程的进程号; %CPU:该进程使用掉的CPU资源百分比;***** %MEM:该进程所占用的物理内存百分比;***** VSZ :(Virtual Size)进程占用的虚拟内存量 (单位Kb);***** RSS :该进程占用的物理内存大小 (单位Kb);***** TTY :该进程是在哪个终端机上面运作的,若与终端机无关,则显示?,另外, tty1-tty6是本机上面登入者进程,若为pts/0等,表示为由网络连接进主机进程; STAT:该进程目前的状态 START:该进程被触发启动的时间; TIME :该进程实际使用 CPU 运作的时间; COMMAND:该进程的实际命令,[ 方括号 ] 属于内核态的进程。 没有 [ ] 的是用户态进程。。 STAT:该进程目前的状态,主要的状态包括 R :正在运行,或者是可被运行。 S :正在中断睡眠中,可被某些信号(signal) 唤醒。 D :不可中断睡眠。 T :正在侦测或者是停止了。 Z :已经终止,但是其父进程无法正常终止他,造成 zombie (疆尸) 进程的状态。 + :前台进程。 l :多线程进程。 N :低优先级进程。 < :高优先级进程。 s :进程领导者。 L : 已将页面锁定到内存中。 # 3、pstree:显示进程状态树 pstree命令以树形结构显示进程和进程之间的关系。 [root@linux html]# pstree systemd─┬─NetworkManager───2*[{NetworkManager}] ├─VGAuthService ├─abrt-watch-log ├─abrtd ├─agetty ├─anacron ├─auditd───{auditd} ├─crond ├─dbus-daemon───{dbus-daemon} ├─lvmetad ├─master─┬─pickup │ └─qmgr ├─nginx───nginx ├─polkitd───6*[{polkitd}] ├─rsyslogd───2*[{rsyslogd}] ├─sshd───sshd───bash───pstree ├─systemd-journal ├─systemd-logind ├─systemd-udevd ├─tuned───4*[{tuned}] └─vmtoolsd───2*[{vmtoolsd}] -a 显示启动每个进程对应的完整指令,包含启动进程的路径、参数等 -c 显示的进程中包含子进程和父进程 -h 对现在执行的程序进行特别标注 -n 根据进程PID号来排序输出,默认是以程序名称排序输出的 -p 显示进程的PID -u 显示进程对应的用户名称
2、top命令
实时显示系统中各个进程的资源占用状况
参数选项 解释说明 -a 将进程按照使用内存排序 -b 以批处理模式显示进程信息,输出结果可以传递给其他程序或写入到文件中。 -c 显示进程的整个命令路径,而不是只显示命令名称 -d 指定每两次屏幕信息刷新之间的时间间隔(top -d 1) -H 指定这个可以显示每个线程的情况,否则就是进程的总的状态 -i 不显示闲置或者僵死的进程信息 -n top输出信息更新的次数,完成后将退出top命令 -p 显示指定的进程信息(top -p 进程号) 重点:top输出 top - 01:12:32 up 2 days, 2:47, 2 users, load average: 0.00, 0.01, 0.05 第一行:任务队列信息,同uptime命令的执行结果。 01:12:32 当前系统时间。 up 2 days, 2:47 系统已经运行了1天16小时36分。 2 users 当前有2个用户登录系统。 load average: 0.00, 0.01, 0.05 — load average 平均负载情况***** *****后面的三个数分别是1分钟、5分钟、15分钟的平均负载情况。 【体现系统繁忙的重要简单的查看指标】 CPU是6核,负载超过6就繁忙的临界点. Tasks: 105 total, 1 running, 104 sleeping, 0 stopped, 0 zombie 第二行,Tasks为任务(进程)。 从上面的信息可以看出, 系统现在共有105个进程,其中处于运行状态的有1个, 104个在休眠(sleep),stoped状态0个,zombie状态(僵死)的有0个。 STAT:该进程目前的状态,主要的状态包括 R :正在运行或者是可被运行。 S :正在中断睡眠中,可被某些信号(signal) 唤醒。 D :不可中断睡眠。 T :正在侦测或者是停止了。 Z :已经终止,但是其父进程无法正常终止他,造成 zombie (疆尸) 进程的状态。 %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st 第三行,CPU状态信息。 0.0% us (user)用户空间占用CPU的百分比(如:应用程序、执行命令)。***** 0.0% sy (system)内核空间占用CPU的百分比(如:内核进程、硬件磁盘操作)。***** 0.0% ni (nice)改变过优先级的进程占用CPU的百分比。 100.0% id (idle)空闲CPU百分比,数值越大,CPU越空闲。***** 0.0% wa (wait)IO等待占用CPU的百分比。***** 0.0% hi (hard Interrupts)硬中断(Hardware IRQ)占用CPU的百分比。 0.0% si 软中断(Software Interrupts)占用CPU的百分比。 0.0% st 虚拟机占用CPU的百分比。 KiB Mem : 4026136 total, 203768 free, 228476 used, 3593892 buff/cache 第四行,内存状态。 KiB Mem : 995684 total, 87984 free, 234516 used, 673184 buff/cache 内存: 4026136 total #内存一共多大 203768 free #可用内存,剩余内存 228476 used #已经使用的内存 3593892 buff/cache #系统缓存和缓冲占用内存空间 KiB Swap: 2097148 total, 2097148 free, 0 used. 3531892 avail Mem 第五行,swap交换分区信息。 12097148 total 交换区总量。 0k used 使用的交换区总量。 2097148 free 空闲交换区总量。 3531892 avail Mem 可用内存大小 以上两行: cat /proc/meminfo或free -m获取。 从第七行开始,给出的是各进程(任务)的状态监控。 PID 进程id。 USER 进程所有者。 PR 进程优先级。 NI nice值,负值表示高优先级,正值表示低优先级。 ================================================== VIRT 进程使用的虚拟内存总量,单位kb。***** RES 进程使用的、未被换出的物理内存大小,单位kb。***** SHR 共享内存大小,单位kb。***** S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程。 %CPU 上次更新到现在的CPU时间占用百分比。***** %MEM 进程使用的物理内存百分比。***** =================================================== TIME+ 进程使用的CPU时间总计,单位1/100秒。 COMMAND 进程名称(命令名/命令行)。
3、top快捷键指令
top快捷键指令 1 #查看系统核心总数, 类似于 lscpu(CPUs) q #退出top M #按内存使用百分比排序输出 P #按CPU使用百分比排序输出 R #对已排序的列反转排序 ###抓重点显示,有助于查看的指令。 x #高亮显示排序的列 z #以彩色信息展示 b #高亮显示处于R状态的进程 >或< #改变排序的列,依然高亮显示。 #top熟悉了解的快捷键 h #查看帮助 l,t,m #显示/隐藏前5行的数据输出
4、杀进程
# 1、杀进程 kill 进程号 pkill 进程名 killall 进程名 # 2、强制杀进程 kill -9 进程号 killall -9 进程名 问题:导致进程起不来. web,crond没有数据的软件 kill -9 进程号 重的服务不能kill -9
5、进程前后台切换
sh tar.sh # 1、前台正在运行的进程 crtl+z # 2、挂起前台正在运行的进程 bg # 3、挂起的进程在后台运行 fg # 4、后台运行的进程切换至前台 sh tar.sh & # 5、程序直接放到后台运行
这篇关于Linux进程管理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南