用其他名称显示当前正在运行的进程

用其他名称显示当前正在运行的进程

如果我top这样做了,htop那么它将显示当前正在运行的进程。

我想用其他名称而不是原始名称来显示进程名称。

例如,即使在 Firefox 中运行,我也想将其显示top为 icefox 或 waterfoxtophtop,那么在 Ubuntu 中我该怎么做?

谢谢。

答案1

我不明白你为什么要这样做,但如果只是为了好奇,那么一个快速而肮脏的

top | sed 's/firefox/whatever/'

似乎有效,至少对于默认top输出而言 - 但您不应该依赖它是一个强大的解决方案。

答案2

为什么不直接将可执行文件重命名为其他名称?或者直接重新链接。例如,对于 Firefox,这是最简单的方法:

  • 我们必须隐藏文件夹名称,因此创建一个新目录

    sudo mkdir /usr/lib/icefox
    
  • 接下来我们创建一个链接到 Firefox 可执行文件

    cd /usr/lib/icefox
    sudo ln -s /usr/lib/firefox/firefox icefox
    
  • 现在修改 Firefox 启动器

    sudo vi /usr/lib/firefox/firefox.sh
    

    并适当更改 MOZ_LIBDIR 或 MOZ_APP_NAME 变量,以便它们应该读取:

    MOZ_LIBDIR=/usr/lib/icefox
    MOZ_APP_NAME=icefox
    

    保持所有其他行不变。

此后,firefox 应该会在 ps/top/htop 中显示为 icefox。

如果您不喜欢这种方法,则必须修改 top/htop/etc 的源代码。所有这些报告程序都从 /proc 文件系统获取数据。例如,您应该在 htop 源代码中修改的文件是。你必须改变进程列表_读取命令行文件函数。只需if

 command[amtRead] = '\0'; 

行中检查是否是要隐藏其名称的进程,如果是,则将commandchar 数组修改为所需的值。然后,在更改之后,您必须自己编译 htop 并使用修改后的版本。但这种方法并不简单,我不喜欢它。

相关内容