Если я сделал top
или htop
, то будет отображаться текущий рабочий процесс.
Я хочу отображать имена процессов с некоторыми другими именами, а не с оригинальным именем.
Например, даже если запущен Firefox, я хочу, чтобы в top
он отображался как icefox или waterfox в top
или htop
. Как это сделать в Ubuntu?
Спасибо.
Я не понимаю, почему вы хотели бы сделать это, но если это просто ради любопытства, то быстрый и грязный
top | sed 's/firefox/whatever/'
, кажется, работает, в по крайней мере, для вывода по умолчанию top
- но вы не должны полагаться на то, что это надежное решение.
Почему бы просто не переименовать исполняемый файл под другим именем? Или просто заново связать это. Например, для 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 должен отображаться как icefox в ps / top / htop.
Если вам не нравится этот метод, вы должны изменить исходный код top / htop / etc. Все эти программы отчетов получают свои данные из файловой системы / proc. Например, файл, который вы должны изменить в исходном коде htop - это этот . Там вы должны изменить функцию ProcessList_readCmdlineFile . Просто вставьте секцию if
после строки
command[amtRead] = '\0';
, в которой вы проверяете, является ли это процессом, для которого вы хотите скрыть его имя, и если это так, измените массив command
на то, что ты хочешь. Затем после изменений вы должны скомпилировать htop для себя и использовать вместо этого эту модифицированную версию. Но этот метод не прост, и мне он не нравится.