ps命令输出进程状态S+的含义解析

最近发现一个问题,ps命令输出里面进程状态为S+的含义,网上好多文章都说是表明进程“位于在后台进程组”。

例如下面这个ps命令输出说明:

D 不可中断  Uninterruptible sleep (usually IO)
 R 正在运行,或在队列中的进程
 S 处于休眠状态
 T 停止或被追踪
 Z 僵尸进程
 W 进入内存交换(从内核2.6开始无效)
 X 死掉的进程

 < 高优先级
 N 低优先级
 L 有些页被锁进内存
 s 包含子进程
 + 位于后台的进程组;
 l 多线程,克隆线程 multi-threaded (using CLONE_THREAD, like NPTL pthreads do)

但其实这是不对的,后面有加号说明进程是“位于在前台进程组”。也就是进程可以使用键盘输出。下面做一个试验证明这点:

首先,在终端一个会话执行一个sleep命令,让其在前台运行。

接着,另启一个终端会话,启动一个后台运行的sleep命令

使用ps查看进程状态

可以看出在前台的进程状态为S+,而在后台的sleep进程状态都是S

查询ps命令的帮助,是说”is in the foreground process group”,也可以证明我说的这点。

网上流传的ps命令输出说明的错误解释非常多,我写这篇文章,希望能纠正一下

总结

以上所述是小编给大家介绍的ps命令输出进程状态S后面加号的含义解析,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

(0)

相关推荐

  • C++基于CreateToolhelp32Snapshot获取系统进程实例

    本文实例讲述了C++基于CreateToolhelp32Snapshot获取系统进程的实现方法.分享给大家供大家参考.具体方法如下: // GetWinProcess.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <Windows.h> #include <TlHelp32.h> int _tmain(int argc, _TCHAR* argv[]) { HANDLE hProcessSnap = C

  • linux vps服务器进程kswapd0与events/0消耗大量CPU的问题

    今天下午网站宕了两次机,发工单给阿里云,发现原因是服务器的CPU 100%了. 重启服务器后,使用 top 命令看看是哪些进程消耗那么大的 CPU 使用.盯了有好十几分钟,主要消耗 CPU 的进程有两个,一个是 mysql,另一个是 apache.下面的图可以看到,mysql 占用了很大部分的 CPU 使用.apache 单个进程虽然占得不多,但有不少个 apache 进程同时存在,也消耗了不少 CPU 的使用. 当然,这些不足以让服务器的 CPU 直接跑满挂掉,后来发现了两个大家伙: 当 my

  • 安装ppstream后出现的ppsap.exe进程解决办法

    出品者:PPS网络电视 属于:ppstream 系统进程:否 后台程序:否 使用网络:是 硬件相关:否 常见错误:未知N/A 内存使用:7.496MB 高峰内存使用:20MB 能否终止:能 安全等级(0-5):0 间谍软件:否 广告软件:否 广告软件:否 木马:否 停止ppsap.exe进程的具体操作:打开ppstream,然后:"工具"->"选项"->"点播服务"->勾掉"允许pps加速器".不过这样一来观

  • python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)

    复制代码 代码如下: #-*- coding:utf-8 -*- from win32com.client import Dispatch import time def start_office_application(app_name): # 在这里获取到app后,其它的操作和通过VBA操作办公软件类似 app = Dispatch(app_name) app.Visible = True time.sleep(0.5) app.Quit() if __name__ == '__main__

  • ps命令输出进程状态S+的含义解析

    最近发现一个问题,ps命令输出里面进程状态为S+的含义,网上好多文章都说是表明进程"位于在后台进程组". 例如下面这个ps命令输出说明: D 不可中断 Uninterruptible sleep (usually IO) R 正在运行,或在队列中的进程 S 处于休眠状态 T 停止或被追踪 Z 僵尸进程 W 进入内存交换(从内核2.6开始无效) X 死掉的进程 < 高优先级 N 低优先级 L 有些页被锁进内存 s 包含子进程 + 位于后台的进程组: l 多线程,克隆线程 multi

  • 一天一个shell命令 linux好管家-进程-ps命令详解

    小知识(以ps为例): 查看命令路径  which ps 命令帮助 ps --help 命令完全手册: man ps 说明 ps全称是:Process Status (进程状态),他就是提供进程信息的. ps命令用于报告当前系统的进程状态.可以搭配kill指令随时中断.删除不必要的程序.ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态.进程是否结束.进程有没有僵死.哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的. 附知识说

  • Linux监视进程之ps命令详解

    本文参考<UNIX/Linux系统管理技术手册>. 操作系统:Debian8.5 仅仅以下常用的三种组合命令的解释,更加齐全的命令请自行ps --help all 查看. 一.ps -ef 输出展示: UID PID PPID C STIME TTY TIME CMD root 1 0 0 2016 ? 00:00:28 /lib/systemd/systemd --system --deserialize 15 root 2 0 0 2016 ? 00:00:00 [kthreadd] ro

  • Linux中top命令输出详解

    前言 Linux下的top命令我相信大家都用过,自从我接触Linux以来就一直用top查看进程的CPU和MEM排行榜.但是top命令的其他输出结果我都没有了解,这些指标都代表什么呢,什么情况下需要关注呢?以及top命令输出结果的来源数据是什么呢,又是怎么一个计算原理呢? 演示环境 # uname -a Linux VM_1_11_centos 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_6

  • 详解shell脚本[] [[]] -n -z 的含义解析

    在写脚本的时候,总是搞不懂[] [[]]的区别,这次写一个总结,把它掌握牢固 []和test 两者是一样的,在命令行里test expr和[ expr ]的效果相同. test的三个基本作用是判断文件.判断字符串.判断整数.支持使用 "与或非" 将表达式连接起来. test中可用的比较运算符只有==和!=,两者都是用于字符串比较的,不可用于整数比较,整数比较只能使用-eq, -gt这种形式. 无论是字符串比较还是整数比较都千万不要使用大于号小于号.当然,如果你实在想用也是可以的,对于字

  • 面试必问Linux 命令su和sudo的区别解析

    目录 1. 准备工作 2. su 命令介绍及主要用法 2.1 - 参数 2.2 切换到指定用户 2.3 -c 参数 3. sudo 命令介绍及主要用法 3.1 主要用法 3.2 sudo 工作原理 3.3 思考 4. 二者的差异对比 之前一直对 su 和 sudo 这两个命令犯迷糊,最近专门搜了这方面的资料,总算是把两者的关系以及用法搞清楚了,这篇文章来系统总结一下. 1. 准备工作 因为本篇博客中涉及到用户切换,所以需要提前准备好几个测试用户,方便后续切换. Linux中新建用户的命令是 us

  • Linux ps命令详解及Linux查看进程的操作方法

    目录 一.常用操作 1.查看所有进程(连带命令行) 2.显示所有包含其他使用者的进程 3.查看指定进程(grep过滤) 4.查看CPU/内存占用率最高的进程 5.查看指定用户的进程 6.分页查看进程 二.拓展 1.TTY字段(终端类型) 2.STAT字段(进程状态) 3.僵尸进程 作用:查看系统进程,比如正在运行的进程有哪些,什么时候开始运行的,哪个用户运行的,占用了多少资源. 参数: -e     显示所有进程 -f     显示所有字段(UID,PPIP,C,STIME字段) -a     

  • 对django2.0 关联表的必填on_delete参数的含义解析

    一对多(ForeignKey) class ForeignKey(ForeignObject): def __init__(self, to, on_delete, related_name=None, related_query_name=None, limit_choices_to=None, parent_link=False, to_field=None, db_constraint=True, **kwargs): super().__init__(to, on_delete, fro

  • 利用logsave如何将命令输出保存起来

    前言 如果想要把命令的输出保存到文件中,你会怎么做? 一个常用的方法就是使用IO重定向吧 ls >/tmp/ls.txt 2>&1 如果需要在将命令输出保存到文件中的同时还需要将内容也输出到屏幕中的话,那么我们可以使用 tee 命令 ls |tee /tmp/ls.txt 不过,我今天发现还有一个 logsave 的命令,也可以做到将命令输出保存到文件的同时将内容页输出到屏幕中. logsave 的语法非常简单: logsave [ -asv ] logfile cmd_prog [a

  • Linux 终端中命令输出保存到文件中的方法

    当你在 Linux 终端中运行命令或脚本时,它会在终端中打印输出方便你立即查看. 有时你需要将输出保存到文件中以备将来参考.当然你可以在 Linux 终端中复制和粘贴,但是有更好的方法可以在 Linux 命令行中保存 shell 脚本或命令的输出,让我演示给你看. 方法 1:使用重定向将命令输出保存到文件中 你可以在 Linux 中使用重定向来达成目的.使用重定向操作符,它会将输出保存到文件中而不是在屏幕上显示. >会将命令输出重定向到文件,它会替换文件中的所有内容. >>会将命令输出添

随机推荐