Articles

9 Maneiras de encontrar o ID de Processo de um programa no Linux

Ao trabalhar em um sistema Linux, às vezes, você precisa descobrir quais processos estão em execução e que o PID ou PPID está preso a ele. Pode ser usado para muitos fins.

Basicamente, nós procuramos por um PID no Linux para matar um programa sem resposta, que pode ser feito pelo Gerenciador de Tarefas GUI, mas CLI é a maneira mais eficiente de lidar com programas sem resposta.

isto é melhor do que a interface gráfica, porque às vezes as ferramentas baseadas na interface gráfica podem não mostrar o processo ainda em execução escondido.,

neste tutorial, vamos mostrar – lhe como encontrar o ID do processo (PID) de um programa em execução de muitas maneiras no Linux.

What is process ID (PID)

PID refers to process ID, which is commonly used by most operating system kernels, such as Linux, Unix, MacOS and Windows.

Este é um ID único que é atribuído automaticamente a cada processo quando ele é criado. Um processo é uma instância em execução de um programa.

What is parent process ID (PPID)

um processo parent is a process that has created one or more child processes., Cada processo infantil é dado um ID do processo Parental (PPID), e o processo pai mata a criança quando ela completa sua operação.

Você pode estar interessado em ler os artigos abaixo, uma vez que estes estão relacionados com este tópico.

  • Como descobrir qual o número de porta que um processo está a usar no Linux
  • 3 formas fáceis de matar ou terminar um processo no Linux

cada vez que o ID do processo é alterado para todos os processos, excepto o init. o init é sempre o primeiro processo no sistema e o ancestral de todos os outros processos. Tem PID 1.,

O valor máximo padrão de PIDs é 32,768. Isso pode ser verificado com o comando

cat /proc/sys/kernel/pid_max no seu computador.

32,768 é o valor máximo em sistemas de 32 bits, mas pode ser definido para qualquer valor até 2^22 (aproximadamente 4 milhões) em sistemas de 64 bits.

Você pode perguntar, Por que precisamos de PIDs de tamanho tão grande? Isto porque o PIDs não pode ser reutilizado imediatamente e para evitar potenciais erros.,

Você pode encontrar o PID dos processos em execução no sistema usando os nove métodos abaixo, como pidof command, pgrep command, ps command, pstree command, ss command, netstat command, lsof command, fuser command e systemctl command.

isto pode ser alcançado usando os nove métodos abaixo.

  • pidof: pidof – find the process ID of a running program.
  • pgrep: pgre – look up or signal processes based on name and other attributes.,
  • ps: ps – report a snapshot of the current processes.
  • pstree: pstree – mostra uma árvore de processos.
  • ss: ss é usado para despejar estatísticas de ‘socket’.
  • netstat: netstat is exibe uma lista de ‘sockets’ abertos.
  • lsof: lsof – list open files.,
  • fuser: fusor – lista de IDs de processo de todos os processos que têm um ou mais arquivos abertos
  • systemctl: systemctl – Controlar o systemd de sistema e do gerenciador de serviço

Para provar isso, vamos encontrar o Apache processo de IDENTIFICAÇÃO. Certifique-se de digitar o seu nome do processo em vez de nós.

1) Como encontrar um ID de processo (PID) no Linux, usando o comando pidof?

o comando pidof é usado para encontrar o ID do processo do programa em execução. Imprime essas identificações na saída padrão., Para demonstrar isso, vamos encontrar o id do processo “Apache2” no sistema.

# pidof apache2
2594 2365 2364 2363 2362 2361

na saída acima você pode ter dificuldades em identificar o ID do processo porque ele mostra todos os PIDs (incluindo pai e filho) contra o nome do processo.

então precisamos encontrar o processo pai PID (PID), que é o que estamos procurando. Este será o primeiro número. No meu caso é 3754 e é ordenado por ordem decrescente.

2) Como procurar um ID de processo (PID) no Linux, usando o comando pgrep?,

o comando pgrep olha para os processos actualmente em execução e lista os IDs do processo que correspondem aos critérios de selecção.

# pgrep apache2236123622363236423652594

A saída acima é similar ao ‘pidof’ saída do comando, mas é ordenada os resultados em ordem crescente, o que mostra claramente que o processo principal PID é pé no passado.No meu caso é 3754.,

Nota: identificar o ID do processo pai pode ser problemático ao usar o’ pidof ‘&’ pgrep ‘ comando, uma vez que cada processo vem com um único PPID e múltiplos PIDs que não mostram a diferença entre eles.

3) Como localizar um ID de processo (PID) no Linux, usando o comando pstree?

o comando pstree mostra os processos em execução como um formato de árvore, o que é uma maneira muito conveniente de mostrar a hierarquia de processos e torna o resultado mais visualmente atraente., Se um nome de usuário é especificado no comando pstree, então ele mostra todo o processo de propriedade do usuário correspondente.

pstree funde visualmente ramos idênticos, colocando-os entre parêntesis rectos e pré-bloqueando-os com a contagem de repetição.

# pstree -p | grep "apache2" |-
-+-apache2(2361) | |-apache2(2362) | |-apache2(2363) | |-apache2(2364) | |-apache2(2365) | `-apache2(2594)

Para obter apenas o processo principal, use o seguinte formato.

# pstree -p | grep "apache2" | head -1 |-
-+-apache2(2361)

‘pstree comando é muito melhor do que o ‘pidof’ & ‘pgrep’ comando, pois ele separa os processos pai e filho, que não são possíveis por eles.,

4) Como encontrar um ID de processo (PID) no Linux, usando o comando ps?

o comando ps mostra informações sobre uma selecção dos processos activos que inclui o ID do processo (pid=PID), o terminal associado ao processo (tname=TTY), o tempo acumulado da CPU em HH:mm:ss (tempo=tempo) e o nome executável (ucmd=CMD). O resultado não é seleccionado por omissão.

O ID do processo precursor (PPID) pode ser facilmente identificado com base na data de início do processo a partir da saída acima., No nosso caso, o processo’ Apache2 ‘começou em December 11th, que é o processo pai e os outros o processo filho. O PID de Apache2 é 3754.

5) Como encontrar um ID de processo (PID) no Linux, usando o comando ss?

o comando ss é usado para descarregar estatísticas de ‘socket’. Ele permite mostrar informações semelhantes ao netstat. Ele pode exibir mais informações TCP e estado do que outras ferramentas.

pode exibir estatísticas para todos os tipos de sockets, tais como PACKET, TCP, UDP, DCCP, RAW, Unix domain, etc.,

# ss -tnlp | grep apache2LISTEN 0 128 :::80 :::* users:(("apache2",pid=3319,fd=4),("apache2",pid=3318,fd=4),("apache2",
,fd=4))

6) How to find a process ID (PID) in Linux, using netstat command?

o comando netstat é usado para imprimir conexões de rede, tabelas de roteamento, estatísticas de interface, conexões mascaradas e associações multicast. Por omissão, o netstat mostra uma lista de ‘sockets’ abertos.

Se não indicar nenhuma família de endereços, então os ‘sockets’ activos de todas as famílias de endereços configuradas serão impressos. Este programa é obsoleto. A substituição do netstat é ss.

# netstat -tnlp | grep apache2tcp6 0 0 :::80 :::* LISTEN 

7) How to find a process ID (PID) in Linux, using lsof command?,

o comando lsof é usado para listar ficheiros abertos. O comando Linux lsof lista informações sobre arquivos que são abertos por processos rodando no sistema.

8) Como encontrar um ID de processo (PID) no Linux, usando o comando fuser?

o utilitário fuser deve escrever para a saída padrão os IDs de processo de processos em execução no sistema local que têm um ou mais arquivos nomeados abertos.

# fuser -v 80/tcp USER PID ACCESS COMMAND80/tcp: root 
www-data 3318 F.... apache2 www-data 3319 F.... apache2

9) How to find a process ID (PID) in Linux, using systemctl command?

o comando systemctl é usado para controlar o Gestor de serviços systemd., Este é um substituto para o antigo sistema de gerenciamento SysVinit, e a maioria dos sistemas operacionais Linux modernos foram movidos para o systemd.