Gerenciamento de processos

Gerenciamento de processos no Ubuntu Linux

Gerenciamento de processos no Ubuntu Linux
Gerenciar processos no Linux é um tópico importante para aprender e entender, pois é um sistema operacional multitarefa e tem muitos processos em andamento ao mesmo tempo. O Linux fornece muitas ferramentas para gerenciar processos, como listar processos em execução, eliminar processos, monitorar o uso do sistema, etc. No Linux, cada processo é representado por seu ID de processo (PID). Existem alguns outros atributos para o processo, como id do usuário e id do grupo se um usuário ou grupo executa o processo. Às vezes você precisa matar ou interagir com um processo, então você deve saber como gerenciar esses processos para fazer seu sistema funcionar sem problemas. No Linux, os processos podem ser gerenciados com comandos como ps, pstree, pgrep, pkill, lsof, top, nice, renice e kill, etc.

Processos

A execução de uma instância de um programa é chamada 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

Os processos em segundo plano começam no terminal e são executados por si próprios. Se você executar um processo no terminal, sua saída será exibida em uma janela de terminal, e você pode interagir com ele, mas se não precisar interagir com o processo, você pode 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 vai lhe poupar tempo e você poderá iniciar outro processo. Para listar processos em execução em segundo plano, use o comando 'jobs.'Ele irá 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 está atualizando, use o comando de fundo.

[email protegido]: ~ $ sudo apt-get upgrade -y &

Vai começar a funcionar em segundo plano. E você pode interagir com outros programas entretanto. Você pode verificar quantos e quais processos estão sendo executados em segundo plano, digitando este comando.

[email protegido]: ~ $ empregos
[1] + Executando sudo apt-get upgrade -y &

Processos de primeiro plano

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

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

[email protegido]: ~ $ fg% 1
sudo apt-get upgrade -y

E se você quiser levar este processo para o segundo plano digite este comando.

[email protegido]: ~ $ 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 em execução do terminal. Digite o comando ps para listar quais processos estão em execução e quantos recursos do sistema eles estão usando e quem os está executando.

[email protegido]: ~ $ ps u
USUÁRIO PID% CPU% MEM VSZ RSS TTY STAT COMANDO DE TEMPO DE INÍCIO
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 pontos / 0 Ss 13:08 0:00 bash
Jim 15604 0.0 0.0 11836 3412 pts / 0 R + 17:19 0:00 ps u
... recorte ..

A coluna do usuário mostra o nome do 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 eliminação para um processo. % CPU mostra a porcentagem da CPU do processador e% MEM mostra o uso da memória de acesso aleatório. Para matar um processo, digite.

[email protegido]: ~ $ kill [id do processo (PID)]

ou

[email protegido]: ~ $ kill -9 [id do processo (PID)]

Use o comando ps aux para ver todos os processos em execução e adicione um pipe para ver em ordem.

[email protegido]: ~ $ ps aux | menos

Se você quiser reorganizar as colunas, você pode fazer isso adicionando uma bandeira -e para listar todos os processos e -o para indicar as colunas por palavras-chave no comando ps.

[email protegido]: ~ $ ps -eo pid, usuário, uid,% cpu,% mem, vsz, rss, comm
PID USUÁRIO UID% CPU% MEM VSZ COMANDO RSS
1 root 0 0.1 0.1 167848 11684 sistematizado
3032 Jim 1000 16.5 4.7 21744776 386524 cromo
... recorte ..

Opções para o comando ps.

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

[email protegido]: ~ $ ps u

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

[email protegido]: ~ $ ps f

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

[email protegido]: ~ $ ps x

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

[email protegido]: ~ $ ps e

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

[email protegido]: ~ $ ps a

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

[email protegido]: ~ $ ps v

Sinalizadores para o comando ps.

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

[email protegido]: ~ $ ps -e

-A bandeira u é usada para ver os processos em execução como root.

[email protegido]: ~ $ ps -u

-O sinalizador f é usado para uma lista completa de processos.

[email protegido]: ~ $ ps -f

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

[email protegido]: ~ $ ps -o
pstree

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

[email protegido]: ~ $ pstree

Opções para o comando pstree

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

[email protegido]: ~ $ pstree -n

-H é usado para destacar processos.

[email protegido]: ~ $ pstree -H [PID]
[email protegido]: ~ $ pstree -H 6457

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

[email protegido]: ~ $ pstree -a

-g é usado para mostrar processos por id de grupo.

[email protegido]: ~ $ pstree -g

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

[email protegido]: ~ $ pstree -s [PID]
[email protegido]: ~ $ pstree -s 6457

[nome do usuário] é usado para mostrar processos pertencentes a um usuário.

[email protegido]: ~ $ pstree [userName]
[email protegido]: ~ $ pstree jim
pgrep

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

[email protegido]: ~ $ Pgrep [opção] [padrão]
[email protegido]: ~ $ pgrep -u jim chrome
Opções para o comando pgrep

-eu é usado para pesquisar não diferencia maiúsculas de minúsculas

[email protegido]: ~ $ Pgrep -i firefox

-d é usado para delimitar a saída

[email protegido]: ~ $ Pgrep -u jim -d:

-você é usado para encontrar processos pertencentes a um usuário

[email protegido]: ~ $ Pgrep -u jim

-uma é usado para listar processos ao lado de seus comandos

[email protegido]: ~ $ Pgrep -u jim -a

-c é usado para mostrar a contagem de processos correspondentes

[email protegido]: ~ $ Pgrep -c -u jim

-eu é usado para listar processos e seus nomes

[email protegido]: ~ $ Pgrep -u jim -l
pkill

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

[email protegido]: ~ $ Pkill [Opções] [Padrões]
[email protegido]: ~ $ Pkill -9 chrome
Opções para o comando pkill

-sinal é usado para enviar um sinal e.g. SIGKILL, SIGTERM, etc.

[email protegido]: ~ $ Pkill --signal SIGTERM vscode

-HUP é usado para recarregar um processo

[email protegido]: ~ $ Pkill -HUP syslogd

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

[email protegido]: ~ $ Pkill -f “ping 7.7.7.7 ”

-você é usado para matar todos os processos pertencentes a um usuário.

[email protegido]: ~ $ Pkill -u jim

-eu é usado para eliminação do processo sem distinção entre maiúsculas e minúsculas por pkill.

[email protegido]: ~ $ Pkill -i firefox

-9 é usado para enviar um sinal de morte.

[email protegido]: ~ $ Pkill -9 chrome

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

[email protegido]: ~ $ 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.

[email protegido]: ~ $ lsof

Na tabela acima do comando lsof, FD representa a descrição do arquivo, cwd representa o diretório de trabalho atual, txt significa arquivo de texto, mem significa arquivos mapeados em memória, mmap significa dispositivos mapeados em memória, REG representa um arquivo regular, DIR representa 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 por seu nome de processo.

[email protegido]: ~ $ lsof -c chrome

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

[email protegido]: ~ $ lsof -u jim

-eu é usado para a lista de processos em execução em uma porta.

[email protegido]: ~ $ lsof -i

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

[email protegido]: ~ $ lsof + D / home /

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

[email protegido]: ~ $ lsof -p 1342

Listagem e gerenciamento de processos com o comando superior

Com o comando top, 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 top também fornece algumas informações sobre o seu sistema, como há quanto tempo o sistema está funcionando ou quantos usuários estão conectados ao sistema e quantos processos estão em execução, quanta CPU e RAM estão sendo usados ​​e uma lista de cada processar.

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

[email protegido]: ~ $ top
Tarefas: 291 no total, 1 em execução, 290 dormindo, 0 parado, 0 zumbi
% CPU (s): 2.3us, 0.3sy, 0.0ni, 97.0id, 0.3wa, 0.0hi, 0.0si, 0.0º
MiB Mem: 7880.6 no total, 1259.9 livre, 3176 usado, 3444.4 buff / cache
Troca MiB: 2048.0 no total, 2048.0 grátis, 0.0 usado. 4091.8 avail Mem
PID USUÁRIO PR NI VIRT RES SHR S% CPU% MEM TEMPO + COMANDO
3241 jim 20 0 20.7g 33512 10082 S 1.7 4.2 0:54.24 cromo
3327 jim 20 0 4698084 249156 86456 S 1.3 3.1 1:42.64 cromo
2920 jim 20 0 955400 410868 14372 S 1.0 5.1 7:51.04 cromo
3423 jim 20 0 4721584 198500 10106 S 1.0 2.5 0:49.00 cromo
3030 jim 20 0 458740 114044 66248 S 0.7 1.4 3:00.47 cromo
3937 jim 20 0 4610540 104908 72292 S 0.7 1.3 0:05.91 cromo
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 cromo
3388 jim 20 0 4674192 156208 85032 S 0.3 1.9 0:13.91 cromo
3409 jim 20 0 4642180 140020 87304 S 0.3 1.7 0:15.36 cromo
3441 Jim 20 0 16.5g 156396 89700 S 0.3 1.9 0:25.70 cromo
… .recorte… .

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

Observe qual processo está consumindo mais memória ou CPU. Esses processos que estão consumindo mais memória podem ser eliminados, e aqueles processos que estão consumindo mais CPU podem ser renovados para dar-lhes menos importância para o processador.

Mate um processo no topo: Aperte k e escreva o ID do processo que você deseja matar. Em seguida, digite 15 ou 9 para matar normalmente ou imediatamente; você também pode matar um processo com um comando kill ou killall.

Renice um processo no topo: Aperte r e escreva o PID do processo que você deseja que seja renovado. Ele pedirá que você digite o PID do processo e, em seguida, o valor de nicing que você deseja dar a este processo entre -19 a 20 (-19 significa a maior importância e 20 significa a menor importância).

Listagem e gerenciamento de processos com o Monitor de sistema

Linux tem um gnome de monitor de sistema para mostrar os processos em execução de forma mais dinâmica. Para iniciar o monitor do sistema, pressione a tecla windows e digite o monitor do sistema, clique em seu ícone, e você pode ver os processos em colunas. Ao clicar com o botão direito neles, você pode encerrar, interromper ou reniciar o processo.

Os processos em 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 em CPU para ver qual processo está consumindo mais energia da CPU. Para gerenciar processos, clique com o botão direito sobre eles e selecione a opção que deseja fazer com o processo. Para gerenciar o processo selecione as seguintes opções.

Matando um processo com kill e killall

kill, e o comando killall é usado para matar / encerrar um processo em execução. 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, terminar ou reler arquivos de configuração, etc. Os sinais podem ser escritos em ambas as formas por números ou por nome. A seguir estão alguns sinais comumente usados.

Descrição do Número do Sinal

SIGHUP 1 Detecta sinal de desligamento no terminal de controle.
SIGINT 2 interpretado do teclado.
SIGQUIT 3 Saia do teclado.
SIGILL 4 Instruções ilegais.
SIGTRAP 5 é usado para rastrear um traço.
SIGABRT 6 é usado para abortar sinal de aborto (3).
SIGKILL 9 é usado para enviar um sinal de eliminação.
SIGTERM 15 é usado para enviar um sinal de terminação.
SIGCONT 19,18,25 É usado para continuar um processo se parado.
SIGSTOP 17,19,23 É usado para interromper processos.

Diferentes valores de SIGCONT e SIGSTOP são usados ​​em diferentes sistemas operacionais Unix / Linux. Para obter informações detalhadas sobre os sinais, digite homem 7, terminal de sinal.

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

Observe o processo para o qual você deseja enviar um sinal de eliminação. Você pode encontrar o id do processo (PID) por ps ou comando top.

PID USUÁRIO PR NI VIRT RES SHR S% CPU% MEM TEMPO + COMANDO
7780 jim 20 0 12596 4364 3460 R 33.3 3.2 13:54:12 no topo

O processo principal está consumindo 33.3% da CPU. Se você deseja encerrar este processo para economizar o uso da CPU, aqui estão algumas maneiras de encerrar este processo com o comando kill.

[email protegido]: ~ $ kill 7780
[email protegido]: ~ $ kill -15 7780 ou $ kill -SIGTERM 7780
[email protegido]: ~ $ kill -9 7780 ou $ kill -SIGKILL 7780

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

Com o comando killall, você não precisa pesquisar a id do processo; você pode enviar um sinal de eliminação para um processo por nome ao invés de id de processo. Ele também pode matar mais processos do que você deseja, se você não for cuidadoso, e.g., “Killall chrome” irá matar todos os processos de cromo, incluindo aqueles que você não quer matar. Às vezes é útil matar processos com o mesmo nome.

Como o comando kill, você pode digitar os sinais por nome ou número no comando killall. Elimine qualquer processo em execução com o comando killall; você só precisa digitar o seu nome e o sinal que deseja enviar. e.g., envie um sinal de eliminação para o firefox usando o comando killall, escreva o comando abaixo.

[email protegido]: ~ $ killall -9 firefox

ou

[email protegido]: ~ $ killall SIGKILL chrome

Alterando a prioridade do processo com nice e renice

Cada processo em seu sistema Linux tem um valor excelente, e está entre -19 a 20. Ele decidiu qual processo teria mais acesso à CPU no sistema. Quanto menor o valor do nice, mais acesso um processo tem ao processo da CPU. Como -16 valores agradáveis ​​têm mais acesso à CPU do que 18 valores agradáveis. Apenas um usuário com privilégios de root pode atribuir um valor negativo de nice. Um usuário normal só pode atribuir o valor de "bom" entre 0 e 19. Um usuário normal só pode atribuir valores agradáveis ​​mais altos e em seus próprios processos. Um usuário root pode definir qualquer valor adequado para qualquer processo.

Se você quiser dar um processo mais acessível ao uso da CPU atribuindo o valor nice, digite o seguinte comando.

[email protegido]: ~ $ nice +3 chrome

E renice o processo

[email protegido]: ~ $ 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 da CPU e RAM; saber como gerenciá-los aumenta a velocidade e o desempenho do seu sistema e oferece um ambiente melhor para executar quaisquer processos que você queira com mais eficiência.

Instale o último jogo de estratégia OpenRA no Ubuntu Linux
OpenRA é um motor de jogo de estratégia em tempo real Libre / Free que recria os primeiros jogos Westwood como o clássico Command & Conquer: Red Alert...
Instale o emulador Dolphin mais recente para Gamecube e Wii no Linux
O Dolphin Emulator permite que você jogue seus jogos de Gamecube e Wii escolhidos em computadores pessoais Linux (PC). Sendo um emulador de jogo disp...
Como usar o GameConqueror Cheat Engine no Linux
O artigo cobre um guia sobre como usar o mecanismo de cheat GameConqueror no Linux. Muitos usuários que jogam no Windows costumam usar o aplicativo “C...