Linux不会将批处理模式下的完整命令名打印为nohup进程

时间:2015-12-11 20:22:26

标签: background-process nohup top-command

我试图从顶部找到进程的cpu利用率。所以在此之前我必须测试下面的命令

top -b -c -d1 -n2

我使用-c选项打印完整的命令名称,因为进程名称在没有-c的情况下被截断 不,当我以 nohup sh test.sh& 运行时,输出nohup.out包含截断的进程名称,因此我无法对进程名称进行grep

159 neutron   30   0  127620  22765   5479 S   0.0  0.6 399:02.56 /usr/bin/p+t

但是当我把它作为sh test.sh&它将完整的命令名称打印到终端 尽管在批处理模式下使用-c进行top命令,为什么不打印完整的命令名?

命令名与启用-c和进程名之间的区别是什么?

或者用短语来表示进程名称和命令名称是不同的,并且通过ps或top等命令从/ proc / pid / status中选择进程名称?

1 个答案:

答案 0 :(得分:1)

我们可以在top命令之前设置COLUMNS环境变量以增加可用宽度。

COLUMNS=1000 top -b -c -d1 -n2

另一种方法是使用ps按名称查找进程的pid并指定ps输出的格式。此输出可用于提供top以获取进程的cpu使用情况基于pid。

ps -eo pid,comms,args

comms =命令名称而不是args
args =用于启动进程的完整参数列表