标签: ps

具有相同名称的多个进程

我有一个在Linux 2.6.13和WindRiver Linux 3.0上运行的应用程序.在Linux 2.6.13当我做...

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

...输出显示'myapplication'的多个条目.

如果我在WindRiver Linux 3.0中提供相同的命令,输出只显示'myapplication'的一个条目

差异与操作系统的差异有关吗?请告诉我原因?

linux process ps

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

在Linux中使用'ps'命令,如何查看实时数据?

我发现我的 java web 服务器(tomcat)使用了高 cpu,所以我使用 'ps aux' 来查看进程信息,例如:

# ps aux  | grep -E "PID|java"
USER       PID %CPU %MEM    
root      7533  143 39.8 
Run Code Online (Sandbox Code Playgroud)

它表明java占用了143%的cpu。然后我用'top'命令查看,java进程的cpu使用率也是140%左右。

之后,我将 Web 服务器脱机(无法访问,错误进程仍然存在)。然后我用top看看,java用的cpu很低:

# top | grep -E "PID|java"       
PID %CPU %MEM    TIME+  COMMAND 
7533  0.7 39.9 455:13.81 java   
PID %CPU %MEM    TIME+  COMMAND
Run Code Online (Sandbox Code Playgroud)

'vmstat' 还显示 cpu 几乎空闲:

# vmstat 1
-----cpu------
us sy id wa st
 19  1 79  1  0
 0  0 99  1  0
 0  0 100  0  0
 0  0 100  0 …
Run Code Online (Sandbox Code Playgroud)

java linux cpu ps

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

Bash - 一个脚本的两个进程

我有一个名为test.sh的shell脚本:

#!/bin/bash
echo "start"
ps xc | grep test.sh | grep -v grep | wc -l
vartest=`ps xc | grep test.sh | grep -v grep | wc -l `
echo $vartest
echo "end"
Run Code Online (Sandbox Code Playgroud)

输出结果是:

start
1
2
end
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,为什么有两个test.sh进程在我使用``调用ps时运行(与$()相同)而不是直接调用ps时?我怎样才能得到理想的结果(1)?

unix bash shell ps

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

使用ps检查正在运行的脚本数

我正在编写一个脚本(show_volume.sh),可以在短时间内多次调用.我需要一种方法来确定是否只有一个运行此脚本的实例.我想我可以使用ps,所以我在Bash中编写了这个函数:

is_only_process(){
    PCOUNT=`ps -a | grep show_volume.sh | wc -l`
    echo $PCOUNT
    if (( PCOUNT==1 )); then
        return 1 
    fi  
    return 0
}
Run Code Online (Sandbox Code Playgroud)

所以我添加了这两行

is_only_process
sleep 4
Run Code Online (Sandbox Code Playgroud)

并启动了这个脚本一次,但输出echo $PCOUNT对我没有任何意义.我总是按预期得到值2而不是1.当我运行此命令

ps -a | grep show_volume.sh | wc -l

在脚本运行时从另一个终端,我收到值1.当我连续多次运行此脚本时,几乎相同,例如使用for循环运行10次.当我在使用另一个终端时收到正确的值时,脚本本身会确定太高的值.

现在,为什么这个脚本会确定这些奇怪的值?

bash sh ps

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

如何将"ps"的所有输出通过管道传递到shell脚本中进行进一步处理?

当我运行此命令时:

ps aux|awk {'print $1,$2,$3,$11'}
Run Code Online (Sandbox Code Playgroud)

我得到了用户列表,PID,CPU%和实际命令.我想将所有这些列表都输入到shell脚本中以计算CPU%,如果大于5,那么通过PID来终止进程.

我尝试将它管道化为一个简单的shell脚本,即

ps aux|awk {'print $1,$2,$3,$11'} | ./myscript
Run Code Online (Sandbox Code Playgroud)

我脚本的内容是:

#!/bin/bash
# testing using positional parameters
echo "$1 $2 $3 $4" 
Run Code Online (Sandbox Code Playgroud)

但我得到一个空白输出.知道怎么做吗?

非常感谢!

linux bash shell ps

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

为什么 ps aux 显示的 cpu 使用率与 top 有很大不同

Linux服务器是这样的: Linux hostname 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

并且ps aux显示的 CPU 使用率不正确,并且该值不合理。该值不会像 那样频繁更新top

例如,对于同一进程,ps 显示 cpu 使用率为 210.0,而 keep 显示多次执行中的该值。但在另一个终端中,顶部显示杯子使用量在 1xx 到 2xx 之间不断变化。顶部的价值是合理的。知道为什么 ps aux 效果不好吗?

linux cpu-usage ps

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

如何使用 ps -u UserName 使输出仅显示 CMD

如果我在 Linux 中执行命令:

ps -u UserName
Run Code Online (Sandbox Code Playgroud)

然后我得到以下格式的事物列表:

PID TTY          TIME CMD
Run Code Online (Sandbox Code Playgroud)

如何让输出仅显示 CMD(文件名)?

unix linux ps

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

为什么pgrep找不到这个过程?

如果我执行以下命令,这只是一个将永远等待的长命令

grep 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa abcd'
Run Code Online (Sandbox Code Playgroud)

然后pgrep -f找不到进程,如果我搜索abcd哪个包含在long命令的最后一段中.

ps auxww|grep abcd找到进程,但我不能在脚本中使用它,因为它也会查找grep进程self.

如果您只删除一个apgrep -f abcd可以看到该进程,但我有一个论点很长的命令,让我遇到了这个pgrep限制.

基于唯一字符串检查此类过程的正确方法是什么abcd

linux bash grep ps

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

ps 命令是否检测到 crontab?

大家好,

我有一些使用 crontab 运行的脚本,并且通过日志文件我知道它们实际上正在运行。问题是,每次我输入 ps -ef | grep .sh(因为我的脚本是 .sh 文件)时,我都没有结果。

我读到 crontab 正在使用自己的环境来执行他的脚本,所以我想知道 ps 命令是否能够检测到它们。

我是 Linux 环境的新手,所以如果我的问题看起来很明显,我很抱歉。谢谢

linux cron ps

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

如何获取特定进程的进程ID?

假设有3个进程名称abc,abcdabcde.

我正在使用以下命令来查找进程ID:

ps -ef | grep abc | grep -v grep
Run Code Online (Sandbox Code Playgroud)

这给出了所有3个进程的输出及其对应的pid:

user 6009      1   0   May 11 ?           0:23 ./abc
user 28047     1   0   Apr 24 ?           0:04 ./abcd
user 28548     1   0   Apr 27 ?           0:04 ./abcde
Run Code Online (Sandbox Code Playgroud)

现在我想的是,输出的只是过程ID的grep的事情abc,而不返回abcdabcde.我知道使用grep -v "processname"消除了我想要的但是有什么简单和具体的吗?

linux bash grep process ps

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

标签 统计

ps ×10

linux ×8

bash ×5

grep ×2

process ×2

shell ×2

unix ×2

cpu ×1

cpu-usage ×1

cron ×1

java ×1

sh ×1