Gerenciamento de processos no Ubuntu Linux

Gerenciamento de processos no Ubuntu Linux
Gerenciamento de processos no Linux é um tópico importante para aprender e entender, pois é um sistema operacional multitarefa e possui muitos processos em andamento ao mesmo tempo. O Linux fornece muitas ferramentas para gerenciamento de processos, como listar processos de execução, processos de matança, uso do sistema de monitoramento, etc. No Linux, todo processo é representado por seu ID do processo (PID). Existem outros atributos para o processo, como ID de usuário e ID do grupo se um usuário ou grupo executar o processo. Às vezes você precisa matar ou interagir com um processo, para que você saiba como gerenciar esses processos para fazer seu sistema funcionar bem. No Linux, os processos podem ser gerenciados com comandos como PS, PSTEE, PGREP, PKILL, LSOF, TOP, Nice, Renice e Kill, etc.

Processos

Executar uma instância de um programa é chamado de processo. No Linux, o ID do processo (PID) é usado para representar um processo que é distinto para cada processo. Existem dois tipos de processos,

  • Processos de fundo
  • Processos de primeiro plano

Processos de fundo

Os processos de fundo começam no terminal e são executados por si mesmos. Se você executar um processo no terminal, sua saída será exibida em uma janela do terminal e você poderá interagir com ele, mas se você não precisar interagir com o processo, poderá executá -lo em segundo plano. Se você deseja executar um processo em segundo plano, basta adicionar um sinal "&" no final do comando e ele começará a ser executado em segundo plano; Isso economizará tempo e você poderá iniciar outro processo. Para processos de listagem em execução em segundo plano, use o comando 'Jobs.'Ele exibirá todos os processos em execução em segundo plano.

Por exemplo, a atualização é um processo longo no Linux. Leva muito tempo e, se você quiser fazer outras coisas enquanto o sistema estiver atualizando, use o comando de fundo.

ubuntu@ubuntu: ~ $ sudo apt -get upgrade -y &

Ele começará a correr em segundo plano. E você pode interagir com outros programas enquanto. Você pode verificar quantos e quais processos estão em segundo plano digitando este comando.

ubuntu@ubuntu: ~ $ jobs
[1]+ Running sudo apt -get Upgrade -y &

Processos de primeiro plano

Todos os processos que executamos no terminal são, por padrão, executados como processos de primeiro plano. Podemos gerenciá -los por comandos em primeiro plano e plano.

Você pode trazer qualquer processo em segundo plano listado em trabalhos para o primeiro plano digitando o comando 'FG' seguido pelo número do processo em segundo plano.

ubuntu@ubuntu: ~ $ fg %1
sudo apt -get upgrade -y

E se você quiser levar esse processo para o segundo plano deste comando.

ubuntu@ubuntu: ~ $ bg %1

Listagem e gerenciamento de processos com o comando ps

O processo de listagem com o comando PS é uma das maneiras mais antigas de visualizar os processos de execução do terminal. Digite o comando ps para listar quais processos estão em execução e quanto recurso do sistema eles estão usando e quem os está executando.

ubuntu@ubuntu: ~ $ ps
Usuário PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
Jim 1562 0.0 0.0 164356 6476 tty2 ssl+ 13:07 0:00 shell
Jim 1564 5.2 0.9 881840 78704 TTY2 SL+ 3:07 13:13 Dauth
Jim 2919 0.0 0.0 11328 4660 pts/0 ss 13:08 0:00 BASH
Jim 15604 0.0 0.0 11836 3412 pts/0 r+ 17:19 0:00 ps u
… Snip…

A coluna do usuário mostra o nome de usuário na tabela acima e o PID mostra o ID do processo. Você pode usar o PID para matar ou enviar o sinal de morte para um processo. %CPU mostra processador de porcentagem da CPU e %Mem mostra o uso de memória de acesso aleatório. Para matar um processo, digite.

Ubuntu@ubuntu: ~ $ kill [ID do processo (PID)]

ou

Ubuntu@ubuntu: ~ $ kill -9 [ID do processo (PID)]

Use o comando ps aux para ver todos os processos em execução e adicione um tubo para vê -lo para a ordem.

ubuntu@ubuntu: ~ $ ps aux | menos

Se você deseja reorganizar as colunas, pode fazê -lo adicionando uma bandeira -e para listar todos os processos e -o Para indicar as colunas por palavras -chave no comando PS.

ubuntu@ubuntu: ~ $ ps -eo pid, usuário, uid,%cpu,%mem, vsz, rss, comm
Usuário PID UID %CPU %MEM VSZ RSS Comando
1 raiz 0 0.1 0.1 167848 11684 Sistemas
3032 Jim 1000 16.5 4.7 21744776 386524 Chrome
… Snip…

Opções para o comando ps.

u opção u é usada para listar os processos pelos usuários.

ubuntu@ubuntu: ~ $ ps

f opção é usada para exibir a listagem completa.

ubuntu@ubuntu: ~ $ ps f

X a opção é usada para exibir informações sobre o processo sem um terminal.

ubuntu@ubuntu: ~ $ ps x

e a opção é usada para exibir informações estendidas.

ubuntu@ubuntu: ~ $ ps e

Uma opção é usada para listar todos os processos com o terminal.

ubuntu@ubuntu: ~ $ ps a

v opção é usada para exibir formato de memória virtual.

ubuntu@ubuntu: ~ $ ps v

Sinalizadores para o comando ps.

-e a bandeira é usada para ver todos os processos no sistema.

ubuntu@ubuntu: ~ $ ps -e

-u sinalizador é usado para ver os processos em execução como raiz.

ubuntu@ubuntu: ~ $ ps -u

-F Bandeira é usada para uma lista completa de processos.

ubuntu@ubuntu: ~ $ ps -f

-o sinalizador é usado para listar os processos na coluna desejada.

ubuntu@ubuntu: ~ $ ps -o
PSTEE

PSTree é outro comando para listar os processos; Ele mostra a saída em um formato de árvore.

ubuntu@ubuntu: ~ $ pSTree

Opções para o comando pSTEE

-n é usado para processos de classificação por PID.

ubuntu@ubuntu: ~ $ pstree -n

-H é usado para destacar processos.

ubuntu@ubuntu: ~ $ pSTree -h [pid]
ubuntu@ubuntu: ~ $ pstree -h 6457

-a é usado para mostrar a saída, incluindo argumentos da linha de comando.

ubuntu@ubuntu: ~ $ pstree -a

-g é usado para mostrar processos por ID do grupo.

ubuntu@ubuntu: ~ $ pstree -g

-s é usado para semear a árvore ou processo específico.

ubuntu@ubuntu: ~ $ pSTree -s [PID]
ubuntu@ubuntu: ~ $ pSTree -s 6457

[nome de usuário] é usado para mostrar processos de propriedade de um usuário.

ubuntu@ubuntu: ~ $ pSTree [nome de usuário]
ubuntu@ubuntu: ~ $ pstree jim
PGREP

Com o comando PGREP, você pode encontrar um processo em execução com base em determinados critérios. Você pode usar o nome completo ou a abreviação do processo para encontrar ou por nome de usuário ou outros atributos. O comando PGREP segue o seguinte padrão.

ubuntu@ubuntu: ~ $ PGREP [Opção] [padrão]
ubuntu@ubuntu: ~ $ PGREP -U Jim Chrome
Opções para o comando PGREP

-eu é usado para pesquisar o caso insensível

ubuntu@ubuntu: ~ $ PGREP -I Firefox

-d é usado para delimitar a saída

ubuntu@ubuntu: ~ $ PGREP -U JIM -D:

-você é usado para encontrar o processo de propriedade de um usuário

ubuntu@ubuntu: ~ $ pgrep -u jim

-a é usado para processos de listagem juntamente com seus comandos

ubuntu@ubuntu: ~ $ pgrep -u jim -a

-c é usado para mostrar a contagem de processos de correspondência

ubuntu@ubuntu: ~ $ PGREP -C -U JIM

-eu é usado para processos de listagem e seu nome

ubuntu@ubuntu: ~ $ pgrep -u jim -l
pkill

Com o comando pkill, você pode enviar um sinal para um processo em execução com base em determinados critérios. Você pode usar o nome completo ou a abreviação do processo para encontrar ou por nome de usuário ou outros atributos. O comando PGREP segue o seguinte padrão.

ubuntu@ubuntu: ~ $ pkill [options] [padrões]
ubuntu@ubuntu: ~ $ pkill -9 Chrome
Opções para o comando pkill

-sinal é usado para enviar um sinal e.g. Sigkill, sigterm, etc.

ubuntu@ubuntu: ~ $ pkill -Signal sigterm vscode

-HUP é usado para recarregar um processo

ubuntu@ubuntu: ~ $ pkill -hup syslogd

-f é usado para matar processos com base na linha de comando completa.

ubuntu@ubuntu: ~ $ pkill -f “ping 7.7.7.7 ”

-você é usado para matar todos os processos de propriedade de um usuário.

ubuntu@ubuntu: ~ $ pkill -u jim

-eu é usado para matar insensível a casos do processo por pkill.

ubuntu@ubuntu: ~ $ pkill -i Firefox

-9 é usado para enviar um sinal de morte.

ubuntu@ubuntu: ~ $ pkill -9 Chrome

-15 é usado para enviar um sinal de terminação.

ubuntu@ubuntu: ~ $ pkill -15 vlc
LSOF (lista de arquivos abertos)

Este utilitário de linha de comando é usado para listar arquivos abertos por vários processos. E como sabemos, todos os sistemas Unix/Linux reconhecem tudo como um arquivo, por isso é conveniente usar o comando lsof para listar todos os arquivos abertos.

ubuntu@ubuntu: ~ $ lsof

Na tabela acima do comando LSOF, o FD representa a descrição do arquivo, CWD representa o diretório de trabalho atual, TXT significa arquivo de texto, MEM significa arquivos mapeados de memória, MMAP significa dispositivos mapeados de memória, Reg representa um arquivo regular, Dir representa o diretório, RTD significa diretório raiz. Existem outras opções que você pode usar com o comando LSOF.

Opções para o comando LSOF.

-c é usado para a lista de arquivos abertos pelo nome do processo.

ubuntu@ubuntu: ~ $ lsof -c Chrome

-você é usado para a lista de arquivos abertos por um usuário.

ubuntu@ubuntu: ~ $ lsof -u jim

-eu é usado para a lista de processos que executam em uma porta.

ubuntu@ubuntu: ~ $ lsof -i

+D é usado para a lista de arquivos abertos em um diretório.

ubuntu@ubuntu: ~ $ lsof +d /home /

-p é usado para a lista de arquivos abertos por um processo.

ubuntu@ubuntu: ~ $ lsof -p 1342

Listagem e gerenciamento do processo com o comando superior

Com o comando superior, você pode exibir uma visão em tempo real dos processos do sistema em execução. Ele exibe os processos, dependendo do uso da CPU. Você pode classificar a coluna de acordo com você. O comando principal também fornece algumas informações sobre o seu sistema, como o tempo está sendo executado ou quantos usuários estão anexados ao sistema e quantos processos estão em execução, quanto CPU e RAM estão sendo usados ​​e uma listagem de cada um processo.

Digite o topo do comando para listar os processos em execução.

ubuntu@ubuntu: ~ $ top
Tarefas: 291 total, 1 corrida, 290 dormindo, 0 parou, 0 zumbi
%CPU (s): 2.3us, 0.3sy, 0.0ni, 97.0id, 0.3wa, 0.0hi, 0.0si, 0.0st
MIB MEM: 7880.6 Total, 1259.9 grátis, 3176 usado, 3444.4 buff/cache
MIB Swap: 2048.0 Total, 2048.0 grátis, 0.0 usado. 4091.8 datilm Mem
Usuário PID Pr Ni Virt res Shr S %CPU %MEM Time+ Comando
3241 Jim 20 0 20.7g 33512 10082 s 1.7 4.2 0:54.24 Chrome
3327 Jim 20 0 4698084 249156 86456 s 1.3 3.1 1:42.64 Chrome
2920 Jim 20 0 955400 410868 14372 S 1.0 5.1 7:51.04 Chrome
3423 Jim 20 0 4721584 198500 10106 s 1.0 2.5 0:49.00 Chrome
3030 Jim 20 0 458740 114044 66248 S 0.7 1.4 3:00.47 Chrome
3937 Jim 20 0 4610540 104908 72292 S 0.7 1.3 0:05.91 Chrome
1603 Jim 20 0 825608 67532 40416 S 0.3 0.8 3:13.52 Xorg
1756 Jim 20 0 4154828 257056 10060 S 0.3 3.2 5:53.31 gnome-s+
1898 Jim 20 0 289096 29284 5668 S 0.3 0.4 1:06.28 Fusuma
3027 Jim 20 0 587580 14304 75960 S 0.3 1.8 9:43.59 Chrome
3388 Jim 20 0 4674192 156208 85032 S 0.3 1.9 0:13.91 Chrome
3409 Jim 20 0 4642180 140020 87304 S 0.3 1.7 0:15.36 Chrome
3441 Jim 20 0 16.5G 156396 89700 S 0.3 1.9 0:25.70 Chrome
.. .recorte… .

Você também pode executar algumas ações com o comando principal para fazer alterações nos processos em execução; Aqui está a lista abaixo.

  • você pressionando "u", você pode exibir um processo em execução por um determinado usuário.
  • M pressionando "M", você pode providenciar o uso da RAM em vez de usar o uso da CPU.
  • P pressionando "P", você pode classificar por uso da CPU.
  • 1 pressionando o interruptor "1" entre o uso de CPUs se houver mais de um.
  • R pressionando "r", você pode fazer sua classificação de saída reversa.
  • h pressionando "h", você pode ir para ajudar e pressionar qualquer tecla para retornar.

Observe qual processo está consumindo mais memória ou CPU. Esses processos que estão consumindo mais memória podem ser mortos, e os processos que consomem mais CPU podem ser renados para dar menos importância ao processador.

Mate um processo no topo: Imprensa k e escreva o ID do processo que deseja matar. Então tipo 15 ou 9 para matar normalmente ou imediatamente; Você também pode matar um processo com um comando de Kill ou Killall.

Renice um processo no topo: Imprensa r e escreva o PID do processo que você deseja ser renunciado. Ele solicitará que você digite o PID do processo e, em seguida, o valor da partida que você deseja dar esse processo entre -19 a 20 (-19 significa a maior importância e 20 significa menor importância).

Listagem e gerenciamento de processos com monitor do sistema

Linux tem um monitor de sistema GNOME para mostrar os processos de execução mais dinamicamente. Para iniciar o monitor do sistema, pressione a tecla Windows e digite o monitor do sistema, clique no ícone e você pode ver processos em colunas. Ao clicar com o botão direito do mouse, você pode matar, parar ou renunciar o processo.

Os processos de execução são exibidos com contas de usuário em ordem alfabética. Você pode classificar os processos por qualquer título de campo como CPU, memória, etc., Basta clicar neles e eles serão classificados; Por exemplo, clique na CPU para ver qual processo está consumindo mais energia da CPU. Para gerenciar processos, clique com o botão direito do mouse neles e selecione a opção que você deseja fazer com o processo. Para gerenciar o processo, selecione as seguintes opções.

  • Propriedades- mostrar outras configurações relacionadas a um processo.
  • Mapas de memória- Mostrar mapas de memória do sistema para mostrar qual biblioteca e outros componentes estão sendo usados ​​na memória para o processo.
  • Abrir arquivo- mostra quais arquivos são abertos pelo processo.
  • Mudar prioridade- exibir uma barra lateral da qual você pode renomar o processo com as opções de muito alto a muito baixo e personalizado.
  • Parar- faz uma pausa no processo até que você selecione continuar.
  • Continuar- reinicia um processo pausado.
  • Matar- Force mata um processo instantaneamente.

Matando um processo com Kill e Killall

Kill, e Killall Command é usado para matar/encerrar um processo de corrida. Esses comandos também podem ser usados ​​para enviar um sinal válido para um processo em execução, como dizer a um processo para continuar, final ou reler arquivos de configuração, etc. Os sinais podem ser escritos nos dois lados por números ou pelo nome. A seguir estão alguns sinais comumente usados.

Descrição do número do sinal

Sighup 1 detecta sinal de suspensão no terminal de controle.
SIGINT 2 interpretado do teclado.
Sigquit 3 saia do teclado.
Sigill 4 instruções ilegais.
Sigtrap 5 é usado para rastrear uma trape.
Sigabrt 6 é usado para abortar o sinal de aborto (3).
Sigkill 9 é usado para enviar um sinal de morte.
O Sigterm 15 é usado para enviar um sinal de rescisão.
Sigcont 19,18,25 é usado para continuar um processo se parado.
Sigstop 17,19,23 é usado para interromper os processos.

Diferentes valores de Sigcont e Sigstop são usados ​​em diferentes sistemas operacionais UNIX/Linux. Para informações detalhadas sobre os sinais Tipo Man 7 Signal Terminal.

Usando o comando kill para enviar sinal para processar por PID.

Observe o processo para o qual você deseja enviar um sinal de morte. Você pode encontrar o ID do processo (PID) por PS ou comando superior.

Usuário PID Pr Ni Virt res Shr S %CPU %MEM Time+ Comando
7780 Jim 20 0 12596 4364 3460 R 33.3 3.2 13:54:12 TOP

O processo superior está consumindo 33.3% da CPU. Se você deseja matar esse processo para salvar o uso da CPU, aqui estão algumas maneiras de encerrar esse processo com o comando Kill.

ubuntu@ubuntu: ~ $ kill 7780
ubuntu@ubuntu: ~ $ kill -15 7780 ou $ kill -sigterm 7780
ubuntu@ubuntu: ~ $ kill -9 7780 ou $ kill -sigkill 7780

Usando o comando killall para enviar sinais para um processo pelo nome.

Com o comando Killall, você não precisa procurar ID de processo; Você pode enviar um sinal de morte para um processo pelo nome, em vez de ID de processo. Também pode matar mais processos do que você deseja se você não tomar cuidado, e.g., "Killall Chrome" matará todos os processos cromados, incluindo aqueles que você não quer matar. Às vezes é útil matar processos de mesmo nome.

Como o comando Kill, você pode digitar os sinais por nome ou por número no comando killall. Mate qualquer processo de corrida com o comando Killall; você só precisa digitar o nome e o sinal que deseja enviar. e.g., Envie um processo de matança Firefox usando o comando killall, escreva o comando abaixo.

ubuntu@ubuntu: ~ $ killall -9 Firefox

ou

ubuntu@ubuntu: ~ killall sigkill chrome

Alterar a prioridade do processo com Nice e Renice

Todo processo em seu sistema Linux tem um excelente valor e é entre -19 e 20. Ele decidiu qual processo teria mais acesso à CPU no sistema. Quanto menor o valor do NICE, mais acesso um processo tem no processo da CPU. Como -16, valores agradáveis ​​têm mais acesso à CPU do que 18 valores agradáveis. Somente um usuário com privilégios root pode atribuir um valor negativo de bom. Um usuário normal pode atribuir apenas o valor de "Nice" entre 0 e 19. Um usuário regular pode atribuir apenas valores agradáveis ​​e por seus próprios processos. Um usuário raiz pode definir qualquer valor bom para qualquer processo.

Se você deseja dar a um processo mais acessível ao uso da CPU atribuindo o valor agradável, digite o seguinte comando.

ubuntu@ubuntu: ~ $ nice +3 Chrome

E renice o processo

ubuntu@ubuntu: ~ $ Renice -n -6 3612

Conclusão

Aqui está o guia para gerenciar seu sistema Linux com PS, Top, LSOF, PSTree, Pkilll, Kill, Killall, Nice, Renice, etc. Alguns processos consomem a maior parte do uso e RAM da CPU; Saber como gerenciá -los aumenta a velocidade e o desempenho do seu sistema e oferece um ambiente melhor para executar quaisquer processos que você desejar com mais eficiência.