Não, não por padrão. Existe uma grande quantidade de logs (especialmente quando você começa a arriscar registrar a ação de escrever uma entrada de log ...).
contabilidade do processo BSD (se você tiver, execute lastcomm
), se ativo, registra o nome de cada comando executado e algumas estatísticas básicas, mas não os argumentos.
O subsistema de auditoria é mais geral e mais flexível. Instale o pacote audit
e leia o guia de auditoria SuSE (principalmente a parte sobre regras ) ou tente
auditctl -A exit,always -F path=/usr/bin/java -S execve
Ou: em vez de eliminá-lo, kill -STOP
dele. O STOP suspende o processo, sem perguntas. Você tem a opção de retomar ( kill -CONT
) ou encerrar ( kill -KILL
) mais tarde. Enquanto o processo ainda estiver por aí, você pode inspecionar sua linha de comando ( /proc/12345/cmdline
), seu mapa de memória ( /proc/12345/maps
) e assim por diante.
Ou: Anexe um depurador ao processo e pause-o. É tão simples quanto gdb --pid 12345
(pode haver opções melhores para um processo Java); anexar um depurador imediatamente pausa o processo (se você sair do depurador, o processo recebe um SIGCONT e continua).
Observe que tudo isso captura apenas processos no nível do sistema operacional, não encadeamentos da JVM. Você precisa ativar recursos da JVM para depurar threads.