Я задавался вопросом, существует ли способ проследить, куда команда была выполнена от в Linux.
Например, если я называю сценарий, есть ли любой способ проследить, где от этого назвали, как запущенный с программы или другого сценария удара.
Если Ваш сценарий записан, удар, существует встроенная переменная, названная $PPID (короткий для идентификатора процесса родителя, я предполагаю), что можно использовать для обнаружения, кто назвал сценарий. Вот пример:
CALLER=$(ps ax | grep "^ *$PPID" | awk '{print $NF}')
echo I was called from $CALLER
Объяснение:
"Был выполнен от", является довольно трудным, я думал бы, если нет некоторый вход в систему исполняемого файла, который был выполнен. Если выполнение закончено существует, вероятно, не много, что осталось изучить.
Если это выполняется, Вы смогли получать достаточно информации о вызывающей стороне из идентификатора родительского процесса (PPID) путем простого использования ps
.
Если процесс все еще работает затем, можно использовать иерархическую визуализацию (названный также лес или обработать дерево), предлагаемый 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