Проследите вызов удара Linux

Я задавался вопросом, существует ли способ проследить, куда команда была выполнена от в Linux.

Например, если я называю сценарий, есть ли любой способ проследить, где от этого назвали, как запущенный с программы или другого сценария удара.

5
задан 14.04.2010, 02:28

3 ответа

Если Ваш сценарий записан, удар, существует встроенная переменная, названная $PPID (короткий для идентификатора процесса родителя, я предполагаю), что можно использовать для обнаружения, кто назвал сценарий. Вот пример:

CALLER=$(ps ax | grep "^ *$PPID" | awk '{print $NF}')
echo I was called from $CALLER

Объяснение:

  1. $PPID дает идентификатор процесса родительского процесса (вызывающая сторона)
  2. списки команд PS все процессы
  3. Команда grep ищет строку, которая содержит PPID в начале строки
  4. Команда awk печатает только последний столбец, который является именем вызывающей стороны
4
ответ дан 07.12.2019, 17:20

"Был выполнен от", является довольно трудным, я думал бы, если нет некоторый вход в систему исполняемого файла, который был выполнен. Если выполнение закончено существует, вероятно, не много, что осталось изучить.

Если это выполняется, Вы смогли получать достаточно информации о вызывающей стороне из идентификатора родительского процесса (PPID) путем простого использования ps.

2
ответ дан 07.12.2019, 17:20

Если процесс все еще работает затем, можно использовать иерархическую визуализацию (названный также лес или обработать дерево), предлагаемый ps команда.

Попробуйте, например:

ps xf

И вывод будет похож:

 3627 ?        Ss     0:00 /bin/dash -f /usr/local/etc/wmii-hg/wmiirc
 3655 ?        S      0:38  \_ bwm --interface eth0 --download
 3656 ?        S      0:38  \_ bwm --interface eth0 --upload
 3687 ?        S      0:20  \_ /bin/dash -f /usr/local/etc/wmii-hg/wmiirc
  574 ?        S      0:00  |   \_ sleep 1
 3713 ?        S      0:00  \_ wmiir read /event
 3714 ?        S      0:00  \_ /bin/dash -f /usr/local/etc/wmii-hg/wmiirc
22671 ?        S      0:00      \_ /bin/dash -f /usr/local/etc/wmii-hg/wmiirc
22672 ?        Ss     0:03          \_ xterm
22673 pts/0    Ss+    0:00              \_ bash
2
ответ дан 07.12.2019, 17:20

Теги

Похожие вопросы