首页 > 系统相关 >Linux如何从命令行卡死的进程中退出?

Linux如何从命令行卡死的进程中退出?

时间:2024-01-29 16:11:19浏览次数:27  
标签:关闭 Ctrl 使用 终端 命令行 Linux 进程 卡死 find

Linux如何从命令行卡死的进程中退出?

不知道大家在使用Linux的时候,会不会遇到一些命令,有可能卡顿,有可能执行时间过长(比如使用 find 查找某个文件),这个时候我不想继续执行这个命令了,说来惭愧,我之前一直使用Ctrl+Z去终止这个命令,今天才知道,这样有很大的问题!

信号简介

一个进程在运行的时候,是能够接受内核发送的信号的,并且对这个信号做出自己的默认行为(没有被修改的话),我列举一下常见的信号列表:

image-20240129105103106先看一下信号9,我们熟知的kill -9 <进程号>,就是让内核发送给进程终止信号,进程接收以后才能终止。

同理,我们也可以使用键盘发送信号 ,Ctrl + Z发送的信号只是挂起这个进程,Ctrl + C才是终止。这意味着,使用Ctrl + Z从终端退出的进程,并没有被释放!

实验

接下来通过两个实验,看看Ctrl + Z(挂起)和Ctrl + C(停止)的区别。

find 查找文件

我们使用find命令从home目录查找某个文件,然后分别使用Ctrl + Z(挂起)和Ctrl + C(停止),看看他们的区别。

  1. Ctrl + Z

    运行find命令后,使用ctrl +Z 退出

    image-20240129153604841

    此时使用ps -t显示当前正在运行的进程的信息:

    image-20240129154016839

​ 可以发现进程还存在着。

  1. Ctrl + C

    运行find命令后,使用ctrl +C

    image-20240129154308428

    此时可以发现进程被彻底关闭了。

其实这种情况还是好的一种情况,因为本质上shell终端也是一个进程,在shell终端里使用命令,相当于创建终端的子进程,当终端(父进程)被关闭时,其子进程也会被关闭(大部分时候)。对于上面的情况,当我们关闭shell命令行时,find进程也会被关闭。

但是,这也只是大部分情况,也可能有一些子进程即使在父进程被关闭之后也不会被关闭,而是一直被挂起!

端口占用

在系统开启一个进程,这个进程会监听某个端口:

image-20240129155119994

  1. Ctrl + Z

    在这之后,即使关闭终端,56868进程也没有被释放。

    image-20240129155536643

​ 上图是在一个新的终端里使用sudo lsof -i :801查看端口的占用,发现这个进程并没有被释放,因此需 要使用kiil -9 56868释放进程。

  1. Ctrl + C

    image-20240129160036827

​ 进程被释放,端口也被释放。

所以大家如果不打算继续使用这个被退出的进程,记得使用Ctrl + C退出哦。

标签:关闭,Ctrl,使用,终端,命令行,Linux,进程,卡死,find
From: https://www.cnblogs.com/curiositywang/p/17994756

相关文章

  • linux 学习总结
      ├──usr(UnixSystemResources)等同于C:/Windows├──src系统级的源码目录├──bin用于存放用户可执行的二进制文件├──lib存放共享库文件和一些系统级别的函数库等同于C:/Windows/System32├──local用于......
  • Fortify Static Code Analyzer 23.2 for macOS, Linux & Windows - 静态应用安全测试
    FortifyStaticCodeAnalyzer23.2formacOS,Linux&Windows-静态应用安全测试FortifySCA-代码漏洞扫描工具|静态代码测试|代码安全分析请访问原文链接:https://sysin.org/blog/fortify-static-code-analyzer/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.o......
  • 通过LINUX驱动控制FPGA端PWM外设(LED) 通过应用程序命令传参随意修改寄存器的值(PWM波频
    用法:先下发下面的命令让kernel信息打印到串口:echo7417>/proc/sys/kernel/printk然后增加程序可执行性:chmod777pwmdriver_app  先执行./pwmdriver_app/dev/pwm400000200然后执行./pwm_driver_app/dev/pwm400000200,可以发现LED[1]......
  • Linux grep命令有何作用?如何使用?
    进行Linux系统维护的时候,想要在文本中快速搜索到你需要的东西,grep命令是非常不错的选择,它主要用于查找文件里符合条件的字符串,从而节省时间、提高工作效率。那么Linux系统中grep命令如何使用?我们一起来看看详细的内容介绍。Linuxgrep命令用于查找文件里符合条件的字符串......
  • Linux磁盘管理常用的三个命令!
    在Linux系统中,如何有效地对存储空间加以使用和管理,是一项非常重要且关键的技术。而且Linux磁盘管理好坏直接关系到整个系统的性能问题,那么你知道Linux磁盘管理有哪些常用命令吗?这篇文章为大家介绍一下Linux磁盘管理常用的三个命令。Linux磁盘管理常用三个命令为df、du、fd......
  • 创建linux桌面快捷方式
    第一步在linux桌面上创建一个xx.desktop文件,如下图第二步在desktop文件中输入启动命令和参数,保存文件[DesktopEntry] Encoding=UTF-8 Name=SQLDeveloper Comment=OracleSQLDeveloper Icon=/opt/sqldeveloper/icon.png Exec=/opt/sqldeveloper/sqldeveloper.sh Term......
  • linux centos yum 报错[Errno 256]No more mirrors to try 解决方法
    解决方案大致有三种一、更新yum二、若不行,可能是因为DNS不稳定吧,因为yum安装时会从三个”repo源“(base,extras,updates)随机获取地址背景我使用yum方式安装软件时,比如zabbix这种软件,我们在安装时一般都是直接到zabbix官网,按照官方的步骤进行安装,但是有一个问题,官方的服务器不在国......
  • Linux环境安装postgresql
    一、资源包下载1.1、官网下载地址https://www.postgresql.org/ftp/source/ 1.2上传安装包,并解压#.tar.gz后缀:tar-zxvf文件名#.tar.xz后缀:tar-Jxvf文件名#-C后面是解压后存放的目录​tar-xvfpostgresql-15.3.tar.gz-C/data/database/postgresql/package......
  • linux中输出重定向
    介绍任何一个程序在Linux中运行,Linux系统都会为其创建3个已经打开的stream,分别用来输入(0:stdin),输出(1:stdout),打印诊断和错误信息(2:stderr)。通常他们会被连接到用户终端。这3个句柄的类型为指向FILE的指针。可以被fprintf、fread等函数使用,他们在程序开始启动后,stdin,stdo......
  • Linux环境安装MYSQL
    一、卸载MariaDB##查看是否安装rpm-qa|grepmariadb##卸载rpm-e--nodepsmariadb-libs 二、资源包准备2.1官网下载https://dev.mysql.com/downloads/mysql/ 2.2上传安装包,并解压#.tar.gz后缀:tar-zxvf文件名#.tar.xz后缀:tar-Jxvf文件名tar-xvf......