Linux top 不以批处理模式将完整的命令名称作为 nohup 进程打印到文件
Linux top not printing full command name to file in batch mode as a nohup process
我试图从 top.So 中找到进程的 cpu 利用率,在此之前我必须测试以下命令
top -b -c -d1 -n2
我正在使用 -c 选项打印完整的命令名称,因为进程名称在没有 -c 的情况下得到 t运行。
不,当我 运行 this as nohup sh test.sh & 时,输出 nohup.out 包含 t运行cated 进程名称,因此我无法对进程名称进行 grep
159 neutron 30 0 127620 22765 5479 S 0.0 0.6 399:02.56 /usr/bin/p+t
但是当我 运行 将其作为 sh test.sh 并且它会将完整的命令名称打印到终端时。
尽管在 top 命令的批处理模式下使用 -c,但为什么没有打印完整的命令名称?
启用-c 的命令名和进程名有什么区别?
或者说进程名和命令名不同,进程名是通过ps或top之类的命令从/proc/pid/status中挑选出来的?
我们可以在top命令之前设置COLUMNS环境变量来增加可用宽度
COLUMNS=1000 top -b -c -d1 -n2
另一种方法是使用 ps 通过名称查找进程的 pid 并指定 ps 的格式 output.This 输出可用于提供顶部获取基于 pid 的进程的 cpu 用法。
ps -eo pid,comms,args
comms = 仅命令名称而不是参数
args = 用于启动进程的完整参数列表
我试图从 top.So 中找到进程的 cpu 利用率,在此之前我必须测试以下命令
top -b -c -d1 -n2
我正在使用 -c 选项打印完整的命令名称,因为进程名称在没有 -c 的情况下得到 t运行。
不,当我 运行 this as nohup sh test.sh & 时,输出 nohup.out 包含 t运行cated 进程名称,因此我无法对进程名称进行 grep
159 neutron 30 0 127620 22765 5479 S 0.0 0.6 399:02.56 /usr/bin/p+t
但是当我 运行 将其作为 sh test.sh 并且它会将完整的命令名称打印到终端时。
尽管在 top 命令的批处理模式下使用 -c,但为什么没有打印完整的命令名称?
启用-c 的命令名和进程名有什么区别?
或者说进程名和命令名不同,进程名是通过ps或top之类的命令从/proc/pid/status中挑选出来的?
我们可以在top命令之前设置COLUMNS环境变量来增加可用宽度
COLUMNS=1000 top -b -c -d1 -n2
另一种方法是使用 ps 通过名称查找进程的 pid 并指定 ps 的格式 output.This 输出可用于提供顶部获取基于 pid 的进程的 cpu 用法。
ps -eo pid,comms,args
comms = 仅命令名称而不是参数
args = 用于启动进程的完整参数列表