我使用VMware服务器2运行了许多linux,当它们的响应时间不那么热或者负载平均增加时,我打开top来查看发生了什么,或者对于我们的生产服务器,我一整天都在打开top。问题是,vmware-vmx进程的cmdline非常长,例如:
/usr/lib/vmware/bin/vmware-vmx -# product=2;name=VMware Server;version=2.0.2;buildnumber=203138;licensename=VMware GSX Server for Linux;licenseversion=3.0 build-203138; -@ pipe=/tmp/vmhsdaemon-0/vmxaf9a31943e9065f0;readyEvent=55 /var/lib/vmware/Virtual Machines/Kyle.vmwarevm/Kyle.vmx所以在top中,我看到的是:
4135 root 20 0 593m 324m 289m S 21 4.2 3038:04 /usr/lib/vmware/bin/vmware-vmx -# product=2;name=VMware Server;
4106 root 10 -10 997m 399m 346m S 9 5.1 1135:25 /usr/lib/vmware/bin/vmware-vmx -# product=2;name=VMware Server;
4074 root 20 0 833m 110m 97m S 2 1.4 722:19.38 /usr/lib/vmware/bin/vmware-vmx -# product=2;name=VMware Server;在VMWare服务器1中,每个VM将作为自己的用户运行,因此我可以很容易地判断哪个是哪个。VMWare服务器2的情况并非如此。为了代替购买一个非常宽的监视器或三重监视器设置,我是否可以更改这些正在运行的进程的cmdline,以便很容易地识别哪个进程的cmdline?我知道这些过程会改变自己的cmdline ..。我能读(但不写)/proc/nnn/cmdline.
是否有任何方法(以root用户的身份)更改正在运行的进程的cmdline?
发布于 2012-07-18 16:10:12
虽然可能没有人会再使用VMWare服务器,但在其他进程中也会出现这个问题。您确实应该看看htop,它允许侧滚动来读取整个命令行并显示进程树:

至于您的问题,更改已运行的进程的命令行很可能只有通过覆盖其ARGV0的内存地址的数据才有可能。据我所知,还没有任何工具可以用来做changecmdline 4652 "foo process"。进一步讨论:http://stupefydeveloper.blogspot.de/2008/10/linux-change-process-name.html
发布于 2010-09-24 13:38:46
以下几点如何?
watch 'ps -eo pid,pcpu,args | grep vmware'
每2秒钟就运行一次命令。pcpu是cpu百分比。
发布于 2012-01-10 15:27:40
这的确是一个令人讨厌的问题。
真正的解决方案张贴在这里:
http://blog.angulosolido.pt/2012/01/vmware-2-long-process-names-and-top.html
这个剧本不好看,但很管用。
https://serverfault.com/questions/184304
复制相似问题