Вы можете увидеть идентификатор родительского процесса (PPID )рассматриваемого процесса, а затем использовать PPID, чтобы определить, был ли он запущен из оболочки или другой программы.
Например, если я хочу увидеть, что запускает этот sleep
процесс, я могу найти его PPID.
$ ps -ef | grep "sleep"
user 2470 1996 0 06:30 pts/1 00:00:00 sleep 60
PID 1996 — это PPID процесса sleep
. Давайте grep
для этого сейчас.
$ ps -ef | grep 1996
user 1996 1995 0 05:57 pts/1 00:00:00 bash
PID 1996 представляет собой bash
оболочку, что является хорошим признаком того, что sleep
процесс может работать с терминала. Чтобы сделать еще один шаг вперед, вы можете grep
для PPID процесса bash
.
$ ps -ef | grep 1995
user 1995 448 0 05:57 tty1 00:00:00 /usr/bin/urxvt
PPID процесса bash
— urxvt
, виртуальный терминал. Итак, команда sleep
запускается с терминала.
free показывает высокое значение для «shared» и этот обмен отключен. Если /tmp смонтирован как tmpfs, любые файлы фактически хранятся в общей памяти и без подкачки, система не может поменять их местами, чтобы освободить память.
Проверьте с помощью df
и посмотрите, сколько места используется в /tmp, что может объяснить разница, которую вы видите между памятью приложения и общей системной памятью.