2015-06-03 2 views
0

Есть ли способ захвата команд, выполняемых программами GUI? Или даже простые скрипты bash? Как команда «история» из bash, но доступна для всей системы.Захват выполненных команд из программ

+1

вы можете использовать strace для получения вызовов sytem, ​​выполняемых конкретной программой. – Pradheep

ответ

0

В оболочке (например, bash) есть опция -x, и вы можете увидеть все команды, которые выполняются определенным скриптом. запустите sh -x <your_script и посмотрите вывод. Вы также можете временно включить/выключить этот журнал, выпустив set +x, set -x внутри сценария.

относительно программ GUI, ответ зависит от ваших потребностей, какой вид деятельности вы хотите регистрировать. Вы можете использовать strace, как это предложено в комментариях, и отфильтровать вызовы exec*. Но, скорее всего, вы примете что-то еще, поскольку большинство действий программы GUI выполняются без выполнения внешних программ.

+0

Например: я использую lxpanel с кнопкой «Свернуть все окна». Я хотел бы захватить команду, выполняемую им, когда я нажимаю на нее. (Я использовал «sudo strace -p 2248 -f 2> & 1 | nl») для отслеживания процесса lxpanel (PID 2248) и дочернего?! Но у меня нет никакого exec там только такого рода вещи: –

+0

только опрос, recvmsg, write, writev, read –

+0

Может быть, lxpanel не запускает exec, каким-либо образом отслеживать «init» или все процессы? «sudo strace -f -p 1» не делает трюк –