Я так понимаю, вам нужны системные / библиотечные вызовы, которые выполняются из определенной программы, а не из всех.
strace
показывает все внешние вызовы из исполняемой программы. Если программа имеет графический интерфейс пользователя, их будет тысячи - усложните их анализ «на экране».
Чтобы сохранить все вызовы, вы можете перенаправить вывод strace
в файл:
strace your_executable 2> my_log_file
, который закроется при выходе из программы. Затем вы можете просматривать / искать файл в любом текстовом средстве просмотра / редакторе. Дополнительную информацию можно получить из man strace
или, например, из. linux.die.net/man/1/strace . На этой странице показаны некоторые интересные способы использования strace
.
Для полноты : Стивен Харрис предложил ниже:
FWIW, strace -o log_file -f your_executable может быть лучше; флаг -o заставляет strace отправлять туда выходные данные, а -ff означает, что если программа вызывает fork (), то этот дочерний процесс также выполняется. app -ff может быть лучше, поэтому данные каждого дочернего процесса находятся в собственном файле журнала. strace показывает системные вызовы; ltrace может отображать вызовов библиотеки.
И даже больше от Марка Плотника:
Да, команда ltrace -c -S ... это то, что нужно использовать для отображения количества библиотечных и системных вызовов .
Предположительно, страница была разработана таким образом, что агент пользователя не обязательно должен быть браузером. Если это так, вы можете просто использовать команду curl
для получения страницы.
Если вы запускаете его как задание cron, вы не хотите, чтобы команда выводила какие-либо данные. Для этого используйте опцию --silent
для команды curl и отбрасывайте HTTP-ответ, перенаправляя вывод в /dev/null
. Например, добавьте следующее задание cron для получения страницы каждые 10 минут:
*/10 * * * * curl --silent http://example.com/path/to/page curl >/dev/null
Если вы хотите быть более эффективным, вы можете разработать свою веб-страницу так, чтобы она отвечала на HTTP HEAD
запрос, а также GET
запросы. Таким образом, вы можете использовать curl -I
, чтобы между сервером и клиентом передавались только HTTP-заголовки.
driver = Selenium :: WebDriver.for: firefox
driver.get "http://www.google.com"
Подробнее на http: // www. seleniumhq.org/docs/03_webdriver.jsp#setting-up-a-selenium-webdriver-project