Linux进程管理命令

一、进程
程序由一条条指令构成,在运行一个程序的时候就是把这些指令从第一条执行到最后一条,而进程是一个正在运行的程序。

比如说,一个main.c文件是不可以直接运行的,对main.c进行编译链接之后生成一个main.exe(在Windows系统中)或main(在Linux系统中),这里的main.exe或者main叫做可执行程序,这个可执行程序是二进制的。所以,其实程序是一个二进制文件,计算机把它运行或者执行起来,它就会产生一个进程。操作系统管理这些进程。

每一个进程都有一个id号为pid,这个pid就是用来唯一标识一个进程的,每个进程的id都是唯一的。

二、进程管理命令

1.ps命令,默认显示与当前终端有关的进程信息

(1)ps
显示的是当前终端中所运行的进程,而不是整个系统所运行的进程:

在这里插入图片描述

从显示的结果可以看出,当前终端中有2个进程,bash打印的内容为:

在这里插入图片描述

ps打印的就是当前终端的进程信息。

【注意】执行3次ps:

在这里插入图片描述
我们可以发现,ps进程的id号逐渐变大,这是因为在第一个ps进程结束以后,它对应的id就会被释放出来,释放出来的id号可以被别的进程再次使用,被复用,但是并不是刚释放出来就被别的进程去使用;当第二次再运行ps时,它的id号会在原有的基础上增加,当id值一直增加到它的最大值以后,才会后头重新寻找没有被使用的id值,也就是被释放出来的id值。

(2)ps -f,显示更多的进程属性信息(全格式),即详细信息。

在这里插入图片描述

(3)ps -e,显示系统中所有的进程信息。我们发现第一个进程的编号是从1开始:

在这里插入图片描述

(4)ps -ef,显示系统中所有的进程的详细信息:

在这里插入图片描述

(5)ps -L,显示进程中的线程ID,LWP就代表线程id:

在这里插入图片描述

2.sleep n,表示睡眠(阻塞)n秒钟。

重新打开一个终端,输入sleep 400,表示睡眠400秒:

在这里插入图片描述

再回到之前打开的终端输入ps,并不能看到刚刚重新打开的终端中的sleep进程:

在这里插入图片描述
输入ps -ef来查看系统中所有进程的详细信息,这时我们就可以看到刚刚在新的终端中运行的sleep进程:

在这里插入图片描述

但是这样很麻烦,我们可以通过管道和过滤来查看,ps -ef | grep "sleep"

在这里插入图片描述

这样就非常方便。

3.Ctrl+c用来结束前台运行进程

结束刚刚sleep 400的进程:

在这里插入图片描述

4.kill命令

(1)kill pid结束或者挂起一个进程,后台和前台的进程都可以通过kill来结束。

先重新打开一个终端,输入sleep 600,表示睡眠600秒:

在这里插入图片描述

然后在另一个终端找到刚刚创建的新的终端中进程sleep的id:

在这里插入图片描述

可以看到整个进程的id是3451。

然后输入kill 3451,表示通过id号来结束整个进程:

在这里插入图片描述

(2)kill -9 pid,强制结束进程

在一个终端中输入sleep 400,表示睡眠400秒,然后按Ctrl+z停止这个进程:

在这里插入图片描述

查看当前终端中的所有进程,发现sleep还在:

在这里插入图片描述

然后通过kill ipd去结束这个进程,发现结束不了:

在这里插入图片描述

这时就需要通过kill -9 pid强制结束这个进程:

在这里插入图片描述
(3)kill -stop pid,挂起一个进程。

5.命令 &,表示这个进程在后台运行

在这里插入图片描述

如果该进程在后台运行,我们在终端就还可以进行操作,比如说上面的ps命令查看进程信息;但是如果该进程在前台运行,那么我们在终端不能进行操作,只有在该进程结束后,才能进行其他操作。

6.pstree命令,以树状图形式显示进程之间的关系

在这里插入图片描述

7.jobs命令,显示当前后台的任务

如下图所示,当前后台没有任务:

在这里插入图片描述

创建一个在后台执行的进程,然后通过jobs来显示当前后台的任务:

在这里插入图片描述

8.前台和后台之间的切换

(1)fg %任务号将后台运行的或挂起的进程挪到前台执行:

在这里插入图片描述

(2)bg %任务号将挂起的进程唤醒到后台执行

先在前台创建一个睡眠400秒的进程:sleep 400,然后通过Ctrl+z停止这个进程:

在这里插入图片描述

然后通过jobs命令显示后台的进程,发现sleep 400这个进程的状态是停止:

在这里插入图片描述

这时,通过bg %任务号,将停止的进程sleep 400唤醒到后台执行:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/62511.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CEC2013(MATLAB):遗传算法(Genetic Algorithm,GA)求解CEC2013的28个函数

一、遗传算法GA 遗传算法(Genetic Algorithm,GA)起源于对生物系统所进行的计算机模拟研究,是一种随机全局搜索优化方法,它模拟了自然选择和遗传中发生的复制、交叉(crossover)和变异(mutation)等现象,从任…

网络原理(JavaEE初阶系列11)

目录 前言: 1.网络原理的理解 2.应用层 2.1自定义协议的约定 2.1.1确定要传输的信息 2.1.2确定数据的格式 3.传输层 3.1UDP 3.1.1UDP报文格式 3.2TCP 3.2.1确认应答 3.2.2超时重传 3.2.3连接管理 3.2.3.1三次握手 3.2.3.2四次挥手 3.2.4滑动窗口 3.…

2000-2021年地级市碳排放数据/地级市二氧化碳排放

2000-2021年地级市碳排放数据/地级市二氧化碳排放 1、时间:2000-2021年 2、来源:主要是各级统计年鉴、相关统计资料等。其中,能源部分分能源品种分部门的能 源消费数据来源于《中国能源统计年鉴》以及各级统计年鉴;工业过程和产…

《Zookeeper》源码分析(七)之 NIOServerCnxn的工作原理

目录 NIOServerCnxnreadPayload()handleWrite(k)process() NIOServerCnxn 在上一节IOWorkRequest的doWork()方法中提到会将IO就绪的key通过handleIO()方法提交给NIOServerCnxn处理,一个NIOServerCnxn代表客户端与服务端的一个连接,它用于处理两者之间的…

leetcode 面试题 02.07. 链表相交

题目:leetcode 面试题 02.07. 链表相交 描述: 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 开始相交: 思路&…

【ChatGPT 指令大全】怎么使用ChatGPT来帮我们写作

在数字化时代,人工智能为我们的生活带来了无数便利和创新。在写作领域,ChatGPT作为一种智能助手,为我们提供了强大的帮助。不论是作文、文章,还是日常函电,ChatGPT都能成为我们的得力助手,快速提供准确的文…

开发工具IDEA的下载与初步使用【各种快捷键的设置,使你的开发事半功倍】

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于IDEA的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.IDEA的简介以及优势 二.IDEA的下载 1.下…

【二】SPI IP核的使用

【一】SPI IP核使用:传送门 基于qsys通过spi外部总线协议对sd卡进行读写操作 一、实验平台与实验的目的: ​ 正点原子开拓者、芯片型号:EP4CE10F17C8;还需要一张sd卡。 ​ 该实验主要是利用SPI IP核驱动SD卡来实现读写实验&am…

爬虫010_列表高级_添加_append_extend_修改_查询_in_not int_删除_del_pop_remove---python工作笔记029

然后再来看列表操作 首先添加append方法 然后插入,坐标是要插入的下标,右边是插入的内容 看结果 1,2,3,4,5,6 然后这个extend,是逐个插入,放到后边 然后是修改,直接对下标赋值 看结果</

gitlab-Runner搭建

root wget https://packages.gitlab.com/runner/gitlab-runner/packages/fedora/29/gitlab-runner-12.6.0-1.x86_64.rpm/download.rpm rpm -ivh download.rpm ---- 安装 rpm -Uvh download.rpm -----更新升级 然后运行&#xff1a; gitlab-runner register --url https://git…

Linux命令200例:tree用于以树状结构显示文件和目录

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌。CSDN专家博主&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &…

逐步分解,一文教会你如何用 jenkins+docker 实现主从模式

♥ 前 言 jenkins 主从模式想必大家都不陌生&#xff0c;大家在学习过程中为了学习方便都在自己本地搭建了 jenkins 环境&#xff0c;然后通过 javaweb 方式实现&#xff0c;对于 docker 下实现主从模式大家好像兴趣挺大。今天就通过这篇文章给大家讲讲怎么玩&#xff0c;希…