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

但我无法从ps或pstree中找到它
$ 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找到它。
发布于 2018-11-06 06:42:18
来自ps关于macOS的手册(我的重点):
-a显示关于其他用户的进程以及您自己的进程的信息。This将跳过没有控制终端的任何进程,除非还指定了-x<#>option。
在没有控制终端的macOS上运行的应用程序(如加窗口的Finder应用程序)将不会被ps -a列出。要列出这些内容,请使用ps -ax。
或者,您可以使用-A或-e选项:
-A显示关于其他用户进程的信息,包括那些没有控制终端的用户进程。-e与-A完全相同。
如果您正在查找有关具有特定名称的进程的信息,请考虑使用pgrep:
pgrep Typora(请注意,除非您使用pgrep -i,否则情况很重要)
若要使用特定名称向进程发出信号,请使用pkill,而不是尝试grep ps的输出。
请参阅pgrep和pkill的手册。
而且,尽管这不是您问题的一部分,但pstree有一个-s选项,仅显示包含具有特定名称的进程的流程树的分支。
发布于 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中测试。
https://unix.stackexchange.com/questions/480040
复制相似问题