Você pode usar strace -p
em uma janela para rastrear um comando em execução em outra janela. A opção -p
aceita um ou mais ids de processo, portanto você pode, por exemplo, tentar
strace -p "$(pidof pry)"
se você tiver pelo menos um processo que pidof
reconheça como pry
. Pode ser necessário experimentar com pidof
(se eu quiser usar um comando pudb3
, preciso usar python3
em vez de pudb3
) e usar pidof
pode não ser a melhor abordagem se houver ambigüidade associada a ele (você pode ter vários comandos que correspondem, mas deseja apenas strace
um deles). Pode ser mais fácil encontrar o processo certo com ps
e fornecer a opção diretamente.
Essa abordagem provavelmente não funcionará bem com um processo de curta duração ou em uma situação em que é importante ver a saída no início da vida do processo, mas para um aplicativo interativo cujo tempo de inicialização não seja especialmente interessante, pode ser viável.
Uma diferença em usar strace -p
em oposição a strace
sem -p
é como as interrupções são tratadas. Um processo lançado por strace
terá interrupções como Ctrl-C passado para ele (e relatado por strace
), mas Ctrl-C em strace -p
desanexá-lo e permitir que o processo continue sem rastrear (e Ctrl-C ainda funciona no aplicativo, se estiver em uma janela separada).