Linux - 进程操作

在使用linux的时候,有时候会按Ctrl+Z 或 Ctrl + C来中断某个有BUG的程序或者是自己不小心写出来的无限循环。。。。。
解释如下:
ctrl-c: ( kill foreground process ) 发送 SIGINT 信号给前台进程组中的所有进程,强制终止程序的执行;

ctrl-z: ( suspend foreground process ) 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程,而并 非结束进程,用户可以使用使用fg/bg操作恢复执行前台或后台的进程。。

ctrl-d: ( Terminate input, or exit shell ) 一个特殊的二进制值,表示 EOF,作用相当于在终端中输入exit后回车;

还有以下几个:

ctrl-/ 发送 SIGQUIT 信号给前台进程组中的所有进程,终止前台进程并生成 core 文件

ctrl-s 中断控制台输出

ctrl-q 恢复控制台输出

ctrl-l 清屏

比如有一个无限循环的shell程序如下

#! /bin/bash
while echo "I'm making files!"
do
        mkdir adir
        cd adir
        touch afile

        sleep 2s
done

运行后会无限增加目录
在这里插入图片描述
这时候使用Ctrl + Z 或 C就可以结束
不过 用其他方法试一试
新开一个Termial

lsof badpro  #列出程序的进程号

在这里插入图片描述

在这里插入图片描述
输入Kill 程序进程号 就可以结束
还有一种就是使用ps

ps aux | grep badpro

在这里插入图片描述
然后找到对应的程序进程号进行 kill就可以了。

猜你喜欢

转载自blog.csdn.net/weixin_43635647/article/details/104096759
今日推荐