Я нахожусь в Linux, и у меня есть приложение Java (архив JAR), в котором используется exec(), чтобы сделать это. Мне нужно выяснить, какие команды это приложение exec() ut ... Я пробовал strace и jstack, но без каких-либо результатов. Предположим, что приложение вызывает exec («ls»), могу ли я найти команду ls только путем вывода grepping из вышеперечисленных программ?Что такое JAVA exec() uting?
Вопрос в следующем: Есть ли простой способ посмотреть, что работает Java-приложение с exec()?
Edit для лучшего обзора ситуации:
Предположим, что в Java приложения У меня есть кнопка с OnClick слушателя, который вызывает статическую функцию из другого class.In этой функции exec("ls");
называется. При нажатии на эту кнопку, я вижу это в Трассирование:
futex(0x7f14a6f799d0, FUTEX_WAIT, 4968, NULLDownload button clicked ! Trying SCP FROM... <unfinished ...>
Trying SCP ОТ .. только мое Sout в этой кнопки обработчик прямо перед вызовом exec()
.
Другое редактирование: Спасибо, ребята, но я говорю с точки зрения OS ... Предположим, что я сисадмин, и я скачал JAR. Я хочу знать (из-за границы), что делает JAR - меня интересуют только программы, начинающиеся с exec()
Итак, я попробовал strace
, но ничего не говорит о вызове этой команды из exec ... Может быть, это тоже запись очень низкий уровень вызывает это ...
Тогда я попробовал jstack -m
, но я не могу найти ничего подобного этой команды от exec. Я пробовал строку grepping, но не повезло.
Не должен ли процесс 'ls' обрабатывать Java как его родительский элемент, например. при просмотре вывода 'ps' и т. д.? – Thomas
@Thomas: Но этот процесс будет жив только на несколько миллисекунд. – Thilo
Хм, хорошая идея ... Но это будет показано только в том случае, если я запустил 'ps' как раз вовремя, когда выполняется команда ls. Я был бы более счастлив с чем-то вроде журнала или следа ... – Matka