Со своим флагом-o команда ps возвращает много информации о процессе, включая:
См. полный список спецификаторов формата «ps» .
Это также включает PID родителя процесса, также известного как «PPID».
Например, чтобы получить PPID «emacs», работающего локально (, то есть PID процесса, запустившего emacs на моей рабочей станции ), я могу запустить:
ps -eo ppid,comm | awk '/emacs/ {print $1}'
который возвращает "1102" (ничего страшного, но я -воспользуюсь этим позже ). Детали этого родительского процесса:
ps -o args,comm,state,user 1102
или (еще лучше):
ps -o args,comm,state,user $(ps -eo ppid,comm | awk '/emacs/ {print $1}')
, который возвращает:
COMMAND COMMAND S USER
xfce4-panel --display :0.0 xfce4-panel S matth
NB :список отображаемых полей приведен для примера (здесь они избыточны ).
Вероятно, это исходит от команды sudo
. Как вы расширяете/определяете свою переменную path
? В вашем локальном пользователе .profile
? Потому что, если вы просто введете sudo -i
или sudo -s
, вы станете пользователем root и, таким образом, будете использовать его .profile
. Согласноman sudo
:
-i, --login: Run the shell specified by the target user's password database entry as a login shell. This means that login-specific resource files such as.profile,.bash_profile or.login will be read by the shell.
-s, --shell: Run the shell specified by the SHELL environment variable if it is set or the shell specified by the invoking user's password database entry.