在Linux中,我用来ps -C command_name选择指定命令名称的进程。但它在 Mac OS X 中不起作用。我仔细阅读了 ps 的手册页,但找不到任何选项来执行此操作。
那么有人知道在 Mac OS X 中使用 ps 时是否有办法通过命令名称选择指定的进程?
我正在尝试使用 powershell ps 查找进程执行信息。有一个属性“SI”,其值通常类似于 0、2、10 等。具体来说,我在 powershell 中输入以下内容:
PS C:\Users\> ps -pid 10860
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
175 12 23068 12276 0.20 10860 2 geckodriver
Run Code Online (Sandbox Code Playgroud)
谢谢!没有代码。
我找不到此 SI 属性的文档。有人可以帮忙吗?谢谢
是否有任何适用于 linux 的实用程序可以为我提供每个进程的内存使用情况的 PStree?
我想理论上可以用 pid 获取一个 pstree,然后将 ps 本身梳理为该 pid 的内存使用,并通过代码将它们合并在一起,但如果有人在我重新发明轮子之前还没有这样做,我会感到惊讶。
除非我搜索不佳,否则谷歌让我失望。
当我运行 ps -ef 命令时,我收到如下信息:
root 26728 26725 99 Sep25 ? 1184018564-02:43:14 java -jar /root/TaskManager.jar
Run Code Online (Sandbox Code Playgroud)
我需要了解为什么时间显示为“1184018564-02:43:14”
谢谢
我看过一些与此类似的帖子,最引人注目的是这里,但对答案并不十分满意。我比较top并ps在一个特定的处理结果,并看到在CPU使用率巨大的差异。 top从区间到区间的变化在 <1% 到 100% 之间,包括持续高点的时期(3-4 个区间 >50%),而ps稳定在 2.2%。我正在观看的过程没有任何孩子或任何东西,所以我不太确定该怎么做。由于 中存在持续高位top,我觉得可以排除采样间隔。
正如我上面链接的问题所建议的那样,这真的只是这两个工具如何处理 I/O 等待时间的差异吗?
编辑:
我已经看到它在 中波动到 2.1% ps,但到目前为止就是这样。输出top -p 4522:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4522 root 16 0 340m 316m 4732 R 54.7 1.3 508:57.46 maui
Run Code Online (Sandbox Code Playgroud)
输出ps u -p 4522:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 4522 2.2 1.3 348764 …Run Code Online (Sandbox Code Playgroud) 问题是这样的:如果我打开终端并输入ps auxw,我会看到所有正在运行的进程的列表,但此命令就像该时刻的快照。我需要的是这样的:
我试图找出启动后崩溃的应用程序正在运行什么进程。我将使用查找器并双击应用程序图标来执行它。有那么一会儿,我知道该应用程序将启动然后崩溃。
如何让终端窗口始终监视正在运行的进程,以便当应用程序短暂启动时,监视会捕获该进程并将其列在终端上?
我怎么做?谢谢。
我刚刚在 Mac OS X 10.11 (El Capitan) 上设置了 Homebrew 的 Nginx。
如果我像这样设置我的 Ngnix 配置:
listen 127.0.0.1:8080;
listen 127.0.0.1:81;
listen 127.0.0.1:75;
Run Code Online (Sandbox Code Playgroud)
它会工作。但是如果我把它放在那里:
listen 127.0.0.1:80;
Run Code Online (Sandbox Code Playgroud)
它不会。如果我去,我会被拒绝连接http://127.0.0.1
ps说 Nginx 正在运行,但netstat -a | grep nginx或netstat -a | grep 80说它不是。
当然,以 root 身份运行它(不是我需要它来运行 :8080
Mac OS X 防火墙没有运行。
错误日志不再显示:
2015/10/10 17:16:19 [emerg] 23906#0: bind() to 0.0.0.0:80 failed (48: Address already in use)
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我可以使用它运行8080(奇怪的是,当我运行时8080,它会打开80端口并将其重定向到80)。
我需要监视给定进程创建的线程的 CPU 使用情况。
在 *nix 中可以使用top -H -p <pid>,但在 OS X 中不可用。
相当于ps -eLo pid,ppid,lwp,nlwp,osz,rss,ruser,pcpu,stime,etime,args也足够了。
我正在使用以下 Ghostscript 命令打印 postscript 文档:
C:\Program Files\gs\gs9.14\bin>gswin64c.exe -sDEVICE=mswinpr2 testprinter.ps
Run Code Online (Sandbox Code Playgroud)
此命令将打开一个打印对话框,我可以在其中更改打印机、指定打印范围和份数,以及使用确定和取消按钮。
但是,我的要求是让 Ghostscript 只是静默打印以抑制打印对话框。
是否有一个命令开关可以让我静默打印?所以我可以发出命令,打印机打印出来。
我无法从 Google 或互联网上提供的其他各种 Ghostscript 文档中获取任何信息。所以我想与友好且知识渊博的超级用户社区核实一下。
我想检查命令是否正在使用以下if子句运行,但它总是true,无论命令实际上是否正在运行:
if [ $"(ps aux | grep curl)" ]; then echo is; else echo not; fi
Run Code Online (Sandbox Code Playgroud)
结果:
[root@is ~]# if [ $"(ps aux | grep curl)" ]; then echo is; else echo not; fi
is
Run Code Online (Sandbox Code Playgroud)
ps外部的命令if:
[root@is ~]# ps aux | grep curl
root 216564 0.0 0.2 6408 2064 pts/0 S+ 22:22 0:00 grep --color=auto curl
Run Code Online (Sandbox Code Playgroud)
如何检查curl我的示例是否正在运行?
我尝试使用不同的参数ps,但我总是有grep命令(这在我看来是正常的),但我不知道如何检查它是否正在运行。
更新1
我想我可以做到这一点,但我不知道如何在命令中做到这一点:
if ps aux blah
if it has …Run Code Online (Sandbox Code Playgroud) ps ×10
linux ×3
macos ×3
top ×3
bash ×1
command-line ×1
ghostscript ×1
grep ×1
nginx ×1
port ×1
powershell ×1
printer ×1
printing ×1
terminal ×1
ubuntu ×1
windows-10 ×1