标签: ps

为什么"回声"不会出现在"ps"中?

我很难理解ps命令中出现的内容.为了测试我的理解,我创建了以下虚拟脚本

 #!/bin/bash
 for i in {1..100000}
 do
  date -u
  date -u
  date -u
 done
Run Code Online (Sandbox Code Playgroud)

在运行此脚本时,我打开了一个新终端并重复执行

ps -eaf | grep date | grep -v grep
Run Code Online (Sandbox Code Playgroud)

我能够在输出中约会过程.

后来我用替换date -u来改变了虚拟脚本echo "what is going on"

     #!/bin/bash
     for i in {1..100000}
     do
      echo "What is going on"
      echo "What is going on"
      echo "What is going on"
     done
Run Code Online (Sandbox Code Playgroud)

在运行更新的虚拟脚本时,我打开了一个新终端并重复执行

ps -eaf | grep echo | grep -v grep
Run Code Online (Sandbox Code Playgroud)

和回声从未在输出中显示.为什么是这样?我怀疑原因是脚本是一个bash脚本,可能是它使用内置echo,因此它没有显示在ps输出中.我对么?我在这里错过了什么?

unix linux bash ps

2
推荐指数
1
解决办法
540
查看次数

如何从ps aux获取某些列

我使用ps aux来输出我的计算机上按内存排序的前10个进程.这是我的命令:

ps aux --sort %mem --cols 100 |tail -10
Run Code Online (Sandbox Code Playgroud)

这输出类似的东西

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
dmak1112  3564  0.0  1.2 831788 104588 ?       Sl   12:59   0:01 /opt/google/chrome/chrome --type=re
dmak1112  9227  7.6  1.4 843500 117664 ?       Sl   14:33   0:07 /opt/google/chrome/chrome --type=re
dmak1112  2656  1.7  1.5 1513096 122136 ?      Ssl  12:58   1:41 compiz
dmak1112  4425  0.1  1.5 852336 126496 ?       Sl   13:04   0:08 /opt/google/chrome/chrome --type=re
dmak1112  3420  0.9  2.3 932820 191284 ?       Sl   12:59   0:53 /opt/google/chrome/chrome …
Run Code Online (Sandbox Code Playgroud)

linux ps

2
推荐指数
1
解决办法
5059
查看次数

找出 Linux 中一个进程休眠了多长时间?

基本上我想要所有已经休眠超过一小时的进程。

我知道 ps 中有 etime,但遗憾的是它显示了整体生命周期。

在linux下如何做到这一点(最好用ps)?

linux process ps procfs

1
推荐指数
1
解决办法
5324
查看次数

实现我自己的ps命令

我正在尝试实现我自己的ps命令,称为psmod.我可以使用linux系统调用和/proc目录的所有实用程序.

我发现目录中的所有目录都/proc以数字作为名称,是系统中的进程.我的问题是:如何只选择那些在psmod被调用时处于活动状态的进程?我知道/proc/<pid>/stat有一封信代表了这个过程的现状; 无论如何,对于每一个进程来说/proc,这封信就是S在睡觉.

我还试图向每个进程发送一个信号0,从0到maximumnumberofprocesses(在我的例子中,32768),但是这样它发现的进程远远多于进程中的进程/proc.

所以,我的问题是,ps工作怎么样?源码对我来说有点复杂,所以如果有人能解释我,我将不胜感激.

c linux system-calls ps procfs

1
推荐指数
1
解决办法
6009
查看次数

htop 和 ps aux 输出之间的巨大差异

我正在 Ubuntu 14.04 上运行测试。当我使用“ps aux|grep service”检查 CPU 使用情况时,进程的 CPU 使用率为 0.1,而在 htop 中,同一进程的 CPU% 为 12.3。

谁能告诉我原因吗?或者我应该考虑哪个值是正确的?

谢谢

cpu-usage ps htop ubuntu-14.04

1
推荐指数
1
解决办法
2472
查看次数

如何在不意外包含无关进程的情况下匹配和终止特定进程?

我有两个 Tomcat 进程,一个叫做event-ws,另一个叫做app-event-ws. 我有时需要event-ws从 shell 脚本中杀死:

ps -ef | grep -w event-ws | grep -v grep
Run Code Online (Sandbox Code Playgroud)

以上将找到并杀死他们;我怎样才能找到确切地找到其中之一?

linux shell ps false-positive

1
推荐指数
1
解决办法
957
查看次数

如何检查进程的(绝对)内存使用情况?

我有一个使用 pid 运行的服务器进程24257,想知道它使用了多少内存(以便估计为 Kubernetes 中的同一进程分配多少资源)。根据pshttps://man7.org/linux/man-pages/man1/ps.1.html)的手册页,这可以通过输出格式说明符获得%mem

       %mem        %MEM      ratio of the process's resident set size
                             to the physical memory on the machine,
                             expressed as a percentage.  (alias pmem).
Run Code Online (Sandbox Code Playgroud)

如果我运行这个,我会得到

> ps -p 24257 -o %mem
%MEM
 0.3
Run Code Online (Sandbox Code Playgroud)

我不确定我是否理解这个输出,因为我在具有 64 GB 内存的 MacBook Pro 上运行该进程,因此我希望(终端)进程在活动监视器中显示为使用约 19 GB 内存。然而,运行的终端进程远没有达到这个数字(最多约 900 Mb)。

有没有办法获得内存使用量的绝对数字(以 Mb 为单位)?或者,如何确定用于此计算的“机器上的物理内存”?

memory memory-management ps

1
推荐指数
1
解决办法
7093
查看次数

需要解释ps的pri标准格式说明符 - 文档中可能存在的错误

关于pri的注释来自ps手册页:

"pri PRI优先处理流程.数字越大意味着优先级越低"

在这里考虑PID 26073

$ renice +15 26073 


26073: old priority 5, new priority 15 # I am making this process more nice 

$ ps -t 1 -o pid,ppid,%cpu,stat,cmd,bsdstart,time,pri

  PID  PPID %CPU  STAT CMD      START     TIME PRI
 9115 18136  0.0   Ss   bash     17:10 00:00:01  19
26073  9115 12.0   RN+  p4 sync  19:06 00:02:56   4
Run Code Online (Sandbox Code Playgroud)

STAT = RN +表示:正在运行,低prio(对其他人好),前景.PRI = 4(1)

$ sudo renice -10 26073 

26073: old priority 15, new priority -10 # I am making this process less …
Run Code Online (Sandbox Code Playgroud)

linux bash shell ps

0
推荐指数
1
解决办法
4548
查看次数

使用 awk 获取特定字符串

我有一个在ps输出中包含多个字符串的 java 进程。我只想要一个特定的字符串。

例如,我有

root 5565 7687  0 Nov20 ?  00:00:54 /bin/java -Xms256m -Xmx512m -XX:MaxPermSize=128m  -XX:PermSize=256m -XX:MaxPermSize=256m -Dstdout.file=/tmp/std.out -da -Dext.dir.class=profiles/ -Dprocess.name=java1 -Djava.security.policy=security.policy
Run Code Online (Sandbox Code Playgroud)

我只想要process.name=java1并且不需要ps输出中的任何其他内容。我无法使用 awk 或 sed 找到一种切实可行的方法。

我试图使用:

ps -ef | grep java1 | grep -v grep | awk '/process.name/ {print $0}'
Run Code Online (Sandbox Code Playgroud)

我得到的输出是ps -ef输出。

有没有更简单的方法?

linux bash awk sed ps

0
推荐指数
1
解决办法
6375
查看次数

ps的grepping输出,排除单词grep

我正在使用ps查找创建为执行命令“ sleep 1234&”的进程的pid,我将结果复制为仅匹配“ sleeping 1234”。

ps -A -f | grep "sleep 1234"
Run Code Online (Sandbox Code Playgroud)

但是,它本身也与命令“ grep sleep 1234”匹配,返回两行而不是一行。如何为grep编写模式以排除单词“ grep”本身?

谢谢

linux shell grep ps

-1
推荐指数
1
解决办法
2066
查看次数