Estou usando o putty para conectar meu servidor linux no qual meus sites estão. Posso executar
# ps aux | less
para mostrar processos em execução. Mas quero exibir quais arquivos estão executando esses processos?
Eu também tentei
# ps aux | grep <pid>
Mas obtendo este erro:
-bash: syntax error near unexpected token `newline'
Qual é a maneira correta de fazer isso?
linux
process
open-files
tshepang
fonte
fonte
grep <pid>
, você é suposto para substituir<pid>
com o seu ID de processo real (é um número).<pid>
é apenas um espaço reservado, não algo que você realmente deve digitar.Respostas:
ps aux | grep <pid>
não é um comando shell. A notação<pid>
é uma convenção comum que significa "colocar o PID lá". Por exemplo, se o PID for 1234, você executariaps aux | grep 1234
. Este não é um comando muito útil, você também pode executarps u 1234
.Sua pergunta não é muito clara. O que você quer dizer com "com nomes de arquivos"? Se você deseja ver qual executável o processo 1234 está executando:
Se você deseja ver quais arquivos esse processo abriu:
Se você deseja ver a linha de comando completa com argumentos:
Se você preferir usar comandos,
lsof -p1234
mostra todos os arquivos que o processo abriu.ps uww 1234
mostra várias informações sobre o processo 1234, incluindo a linha de comando completa.fonte
tente executar o seguinte:
fonte
Antes de tudo,
ps aux | grep <PID>
é útil quando você deseja mostrar os detalhes de um processo específico cujoPID
(Identificador do Processo) é representado por<PID>
.Por exemplo (
ps aux | grep 'firefox\|USER'
significa imprimir apenas linhas que contenhamfirefox
ouUSER
):Portanto, o PID da minha
firefox
instância é 9021. Portanto, para usar o comando que você está tentando executar, eu substituirei<PID>
por9021
:Agora, não sei ao certo o que você quer dizer com "exibir quais arquivos estão executando esses processos". Se você quer mostrar quais arquivos esses processos estão usando,
ps aux
é uma maneira de fazê-lo. Digamos que abri o arquivo/usr/share/doc/nano/faq.html
usando este comando:Pude ver qual arquivo
firefox
foi aberto usandops
:O arquivo aberto é mostrado como um dos argumentos passados para o Firefox. Observe que o PID é diferente (agora é em
31763
vez de9021
), porque todo programa em execução possui seu próprio PID exclusivo.Outro comando útil é
top
. Se você executá-lo com a-c
opção, ele mostrará os argumentos passados para um comando e, com-u <your user>
ele, mostrará apenas os processos iniciados pelo seu nome de usuário (substitua<your user>
pelo seu nome de usuário real):Esta é a saída na minha máquina local (o usuário
terdon
está executando apenas dois processos):Para uma explicação das informações mostradas por
top
, consulte minha resposta a uma pergunta relacionada sobre SU.fonte
alguns caracteres sob shell são para fins especiais como <>? "; ...
grep PID não é útil porque PID é a identificação do processo e o grep encontrará números ...
fonte