首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ps -a找不到正在运行的进程。

ps -a找不到正在运行的进程。
EN

Unix & Linux用户
提问于 2018-11-06 06:27:53
回答 2查看 2.2K关注 0票数 3

我可以从htop找到一个名为typora的过程

但我无法从ps或pstree中找到它

代码语言:javascript
运行
复制
$ ps -a | grep -i typora
 9696 ttys003    0:00.01 grep -i typora

$ pstree | grep -i typora 
 |     |--- 09713 me grep -i typora
 |--= 00258 me /Applications/Typora.app/Contents/MacOS/Typora -psn_0_40970

我怎么能从命令ps找到它。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2018-11-06 06:42:18

来自ps关于macOS的手册(我的重点):

-a显示关于其他用户的进程以及您自己的进程的信息。This将跳过没有控制终端的任何进程,除非还指定了 -x <#>option。

在没有控制终端的macOS上运行的应用程序(如加窗口的Finder应用程序)将不会被ps -a列出。要列出这些内容,请使用ps -ax

或者,您可以使用-A-e选项:

-A显示关于其他用户进程的信息,包括那些没有控制终端的用户进程。-e-A完全相同。

如果您正在查找有关具有特定名称的进程的信息,请考虑使用pgrep

代码语言:javascript
运行
复制
pgrep Typora

(请注意,除非您使用pgrep -i,否则情况很重要)

若要使用特定名称向进程发出信号,请使用pkill,而不是尝试grep ps的输出。

请参阅pgreppkill的手册。

而且,尽管这不是您问题的一部分,但pstree有一个-s选项,仅显示包含具有特定名称的进程的流程树的分支。

票数 11
EN

Unix & Linux用户

发布于 2023-04-15 10:25:38

简短的回答是:添加到ps交换机H。来自男人:H Show threads as if they were processes

长话短说。

我知道,这个5岁的孩子已经回答了问题,答案也被接受了,但是,一方面我对这个问题并不十分满意,另一方面,让我带着变体,我希望这会有所帮助。

htop显示的是进程及其线程,通过在交互模式下按t或最初通过"-t --tree Show the tree view“选项,可以轻松地检查这些进程。

由于typora现在不是空闲的,所以作为示例,我使用了命令mate-terminal。第一次调用创建进程,而后续调用则从第一次调用创建线程。所以,在简单的htop之后

压后t

例如,当我们使用命令ps axu时,我们只看到第一个进程,我们看不到线程,但是线程列在/proc//task/下面。

为了查看线程,我们可以在BSD中使用H开关,因此ps axuH将显示进程及其线程,现在我们可以看到与htop中相同的图片。

描述的行为不是必要的,而且是mate-terminal的固有特性,正如我猜的那样,对于typora来说也是如此。例如,konsole的每个调用都会产生新的进程,并在htop下看到,ps axu也是如此。

答案在Debian11.6中测试。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/480040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档