4 часа без ответа, поэтому я добавлю свое предположение: это может быть уровень, который переводит физические пути (например, / var / samba / share1 / dir / файл
) в логический ( share1 \ dir \ file
) вместе с необходимыми преобразованиями имен файлов , проверками прав доступа и так далее. Таким образом, это необходимо, а не по желанию.
Сама по себе реализация протокола может быть чем-то, что уже работает на логических путях и просто помещает все, что может найти в VFS, на провод.
Несмотря на имя столбца, вы ищете результат comm
, а не cmd
:
ps -o comm= -o etime= -u <user>
cmd
является нестандартным псевдонимом -для args
и показывает команду со всеми ее аргументами, включая любые изменения, внесенные процессом.
comm
— это имя процесса , которое в Linux по умолчанию представляет собой первые 15 байтов базового имени последнего файла, выполняемого процессом (, или совпадает с именем родительского процесса, если он не t выполнять любой файл или имя задачи для задач ядра )и может быть изменено с помощью PR_SET_NAME
prctl()
.
Обратите внимание, что etime
— это время, прошедшее с момента создания процесса, и процесс может (и часто )запускает более одной команды за время своего существования, поэтому, если вы видите cmd 00:03
, это не обязательно означает, что cmd
выполнялся в течение 3 секунд, процесс, который выполняется в настоящее время cmd
, вполне мог раньше выполнять какую-то другую команду.
$ sh -c 'sleep 3; exec ps -o comm= -o etime='
zsh 13:48
ps 00:03
Работающий процесс ps
ранее выполнялся sh
, в течение которого большую часть времени он проводил в ожидании другого работающего процессаsleep
(после того, как sh
выполнялся в течение очень короткого времени ).