Linux下如何查杀stopped进程详解

前言

在Linux系统下面,top命令可以查看查看stopped进程。但是不能查看stopped进程的详细信息。那么如何查看stopped 进程,并且杀掉这些stopped进程呢?

 ps -e j | grep T 

stopped进程的STAT状态为T,一般而言,进程有下面这些状态码:

D    uninterruptible sleep (usually IO)

I    Idle kernel thread

R    running or runnable (on run queue)

S    interruptible sleep (waiting for an event to complete)

T    stopped by job control signal

t    stopped by debugger during the tracing

W    paging (not valid since the 2.6.xx kernel)

X    dead (should never be seen)

Z    defunct ("zombie") process, terminated but not reaped by
                    its parent

For BSD formats and when the stat keyword is used, additional
       characters may be displayed:

<    high-priority (not nice to other users)

N    low-priority (nice to other users)

L    has pages locked into memory (for real-time and custom
                    IO)

s    is a session leader

l    is multi-threaded (using CLONE_THREAD, like NPTL
                    pthreads do)

+    is in the foreground process group

一般较常见的是5种状态码:

D 不可中断 uninterruptible sleep (usually IO)

R 运行 runnable (on run queue)

S 中断 sleeping

T 停止 traced or stopped

Z 僵死 a defunct (”zombie”) process

所以,可以用下面命令ps -A -ostat,ppid,pid,cmd | grep -e '^[T]' 查看stopped的进程信息。如下所示:

# ps -A -ostat,ppid,pid,cmd | grep -e '^[T]'

T  6777 8635 more alert_pps.log
T  6777 9654 tail -60f alert_pps.log
T  6777 10724 top
# kill -9 8635
# ps -A -ostat,ppid,pid,cmd | grep -e '^[T]'
T  6777 9654 tail -60f alert_pps.log
T  6777 10724 top
# kill -9 9654
# kill -9 10724

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • Linux下强制杀死进程的方法详解

    常规篇: 首先,用ps查看进程,方法如下: $ ps -ef -- smx 1822 1 0 11:38 ? 00:00:49 gnome-terminal smx 1823 1822 0 11:38 ? 00:00:00 gnome-pty-helper smx 1824 1822 0 11:38 pts/0 00:00:02 bash smx 1827 1 4 11:38 ? 00:26:28 /usr/lib/firefox-3.6.18/firefox-bin smx 1857 1822

  • Linux如何查看进程栈信息示例

    今天在Linux上调试程序程序的时候发现有时候程序会莫名其妙的hang住,于是就想能不能找到当时程序有那些线程,都在做什么.找了一下linux命令,还真可以满足我的需求.下面看一个小例子. 先准备一段程序,为了简单起见这里使用python来写,其中创建了两个线程来执行各自的任务. import threading import time def test1(): while(True): time.sleep(1) print 'test1' def test2(): while(True):

  • 详解linux下避免僵尸进程的几种方法

    linux下我们可以调用fork函数创建子进程,创建的子进程将会得到父进程的数据空间.堆.栈......副本(采用写时复制机制),子进程将会继承父进程的信号掩码.信号处理方式.当前工作目录.会话id.组id.......当子进程退出时父进程应当及时获取子进程退出状态,否则,如果父进程是一直在运行,那么子进程的退出状态将一直保存在内存中,直到父进程退出才释放. 我们可以使用如下几种方法避免僵尸进程的产生: 1.在fork后调用wait/waitpid函数取得子进程退出状态. 2.调用fork两次(

  • Linux创建进程达到65535的方法

    Linux上创建进程据说消耗很少,这个一直是Linux的特点,于是就专门测试Linux创建进程的极限,测试代码如下: //fork.c #include <unistd.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #define MAXPROCESS 65535 #define SLEEPTIME 60 int main(int argc, char **argv) { pid_

  • linux 进程数最大值修改方法

    实际的系统进程数上限收到3个配置项的影响: 1.threads-max (/proc/sys/kernel/threads_max) 这个值表示物理内存决定的系统进程数上限,fork_init中有: max_threads = mempages / (THREAD_SIZE/PAGE_SIZE) / 8 2.pid_max (/proc/sys/kernel/pid_max) 这个值表示进程ID的上限.为了兼容旧版,默认为32768(即两个字节). <code class="hljs ru

  • Linux下进程数量的限制pid_max的配置方法

    这是在阅读另外一个产品的告警指导书时,无意中发现 pid_max 这个参数. 原来Linux内核对于进程的数量使用 pid_max 做控制. 做一些简单的试验,如下演示获取当前配置值的方法: # cat /proc/sys/kernel/pid_max 32768 # sysctl -a|grep pid_max kernel.pid_max = 32768 如下是 sysctl 命令的帮助. # sysctl -h Usage: sysctl [options] [variable[=valu

  • 详解Supervisor安装与配置(Linux/Unix进程管理工具)

    Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统.它可以很方便的监听.启动.停止.重启一个或多个进程.用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制. 因为Supervisor是Python开发的,安装前先检查一下

  • Linux中怎么通过PID号找到对应的进程名及所在目录方法

    有时候通过top命令可以看到有个别进程占用的内存比较大,但是top无法直接查看到进程名以及进程所在的目录.所以我们可以通过以下方法来定位. 首先需要知道PID号,可以通过top命令获取. 然后我们可以用ps看以下大致信息(ps出来的信息个人觉得比较乱,不是很方便查找) [root@iZbp13806tx36fgoq7bzk1Z 28990]# ps -aux |grep -v grep|grep 28990 28990 0.7 14.0 5112056 1128224 ? Ssl Sep26 2

  • Linux下如何查杀stopped进程详解

    前言 在Linux系统下面,top命令可以查看查看stopped进程.但是不能查看stopped进程的详细信息.那么如何查看stopped 进程,并且杀掉这些stopped进程呢? ps -e j | grep T stopped进程的STAT状态为T,一般而言,进程有下面这些状态码: D    uninterruptible sleep (usually IO) I    Idle kernel thread R    running or runnable (on run queue) S 

  • Linux下tcpdump命令解析及使用详解

    简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具.tcpdump可以将网络中传送的数据包的"头"完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供and.or.not等逻辑语句来帮助你去掉无用的信息. 实用命令实例 默认启动 tcpdump 普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包. 监视指定网络接口的数据包 tcpdum

  • Linux 下C语言连接mysql实例详解

    Linux 下C语言连接mysql实例详解 第一步: 安装mysql, 参考:http://www.jb51.net/article/39190.htm 第二步: 安装mysql.h函数库 sudo apt-get install libmysqlclient-dev 执行之后就可以看到/usr/include/MySQL目录了 然后开始我们的链接. 首先看我的数据库 mysql> show databases; +--------------------+ | Database | +----

  • 对linux下软件(库)的更新命令详解

    在ubuntu服务器下安装包的时候,经常会用到sudo apt-get install 包名 或 sudo pip install 包名,那么两者有什么区别呢? 1.区别 pip用来安装来自PyPI(https://www.python.org/)的python所有的依赖包,并且可以选择安装任何在PyPI上已上传的先前版本的依赖包,个人认为是python相关的包和第三方包以及各种版本: apt-get可以用来安装软件.更新源.也可以用来更新自Ubuntu(https://launchpad.ne

  • 在linux下升级软件包版本等方法详解

    Linux环境下,要想查看某个软件(package)是否安装. rpm包方式安装的,使用 rpm -qa | grep "软件或者包的名字". yum方式安装的, yum list installed | grep "软件或者包的名字". 升级软件包版本. 我们经常会遇到依赖其他版本包的情况(一般是更新的版本),这时候我们需要升级包. 1.卸载后安装新的包. 首先要根据文首提到的查看软件包是否安装的方式查看你是否安装了这个软件,若没有安装,找到路径后使用wget命令

  • Linux 下redis5.0.0安装教程详解

    Linux redis5.0.0安装,教程如下所示: 1.从官网下载,然后传到服务器,tar -zxvf解压 2.进入redis [root@localhost software]# cd redis-5.0.0/ 3.安装:make, (1)若提示:: gcc: Command not found 要安装gcc ,直接命令安装:yum -y install gcc (2)若:提示 fatal error: jemalloc/jemalloc.h: No such file or directo

  • Linux下Makefile的编写与使用详解

    目录 Makefile Makefile文件命名和规则 Makefile的工作原理 Makefile变量 Makefile函数 Makefile clean规则 Makefile 一个工程文件中的源文件可能有很多,并且不同的功能.模块等都放在不同的目录中,常规的编译已经不能高效化的处理这样的问题,而Makefile就是为解决这一问题而来. Makefile一旦写好,只需一个make指令,即可完成Makefile文件中所编写的所有指令,从而编译整个工程文件,极大的提高了效率. make是一个命令工

  • linux下scp和sftp命令使用详解

    目录 前言 1. scp 使用 2. sftp 使用 3. scp 和 sftp 有啥区别?用哪个好? 总结 前言 scp 和 sftp 是一种远程文件加密传输协议,讲通俗点就是用来操控本地/远程文件,不知道你注意到了没有,它们开头都带了 s,是的,它们嵌套了一层 ssh 加密协议. 像 sftp 它的传统版本就是 ftp,但这种协议不安全,传输数据是都是明文的,很容易受到攻击窃取,所以才有了后来的 sftp,其实就跟 http / https 同个道理. 如果你还没了解过 ssh 可以参考我之

  • LINUX下Oracle数据库用户创建方法详解

    本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户) 2)首先要打开监听器命令如下:lsnrctl start,然后sqlplus /nolog ,然后conn /as sysdba,然后startup(这一部分命令是用来打开oracle数据库) 3)查看我们常规将用户表空间放置的位置:执行如下sql: SQL> select

  • linux下的yum命令原理和详解

    yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载.安装.yum提供了查找.安装.删除某一个.一组甚至全部软件包的命令,而且命令简洁而又好记. yum的命令形式一般是如下:yum [options] [command] [package ...] 其中的[opt

随机推荐