Esta página explica como gerenciar processos em execução em seu sistema usando o Webmin.
Introdução aos processos
Cada programa, processo ou comando executado em um sistema Linux é um processo. A qualquer momento, existem dezenas de processos em execução em seu sistema, alguns para programas com os quais você está interagindo graficamente, alguns para comandos que você iniciou em um prompt de shell, alguns para servidores em execução em segundo plano e alguns que executam tarefas do sistema. Cada vez que você digita um comando como ls ou vi no prompt do shell, um novo processo é criado, apenas para sair assim que seu trabalho for concluído.
Cada processo é identificado por um ID exclusivo, conhecido como PID ou ID do processo. Cada um pertence a um único usuário e é membro de vários grupos, que determinam os privilégios que o processo possui. E cada um tem uma prioridade (também conhecida como nível agradável), que controla quanto tempo de CPU o processo pode usar em um sistema ocupado. Quase todo processo tem um pai, que é o processo que o iniciou e do qual ele herda propriedade, prioridade e outras configurações.
Um processo será executado até decidir sair ou até ser eliminado por um sinal de outro processo.
O módulo Processos em execução
Este módulo pode ser usado para visualizar, eliminar, priorizar novamente e executar processos em seu sistema. Ao acessá-lo pela primeira vez na categoria Sistema, a página principal exibirá uma árvore de processos conforme mostrado abaixo.
O módulo possui várias maneiras diferentes de visualizar todos os processos em seu sistema, selecionáveis pelos links Exibir no topo da página principal. São eles:
PID Neste modo de exibição, cada processo é mostrado recuado sob seu pai, formando uma árvore de todos os processos em execução em seu sistema. No topo da árvore está o comando init, que é iniciado pelo kernel no momento da inicialização e, portanto, não tem pai. Usuário Este modo agrupa os processos por seu proprietário. Pode ser útil em sistemas com muitos usuários para ver rapidamente o que cada usuário está executando. Memória Neste modo, os processos são ordenados pela quantidade de memória que estão usando, com aqueles que usam mais memória mostrados na parte superior da página. O uso de memória de um processo nem sempre indica a quantidade de memória que está realmente usando, porque os processos geralmente compartilham memória entre si. Além disso, a quantidade total e livre de memória real e virtual em seu sistema é exibida acima da lista de processos. CPU Este modo de exibição ordena os processos pelo uso atual da CPU, com o usuário mais pesado aparecendo primeiro. Às vezes, o comando Webmin que gera a página aparecerá próximo ao topo da lista, mas pode ser ignorado com segurança. As médias de carga do sistema serão exibidas na parte superior da página, para dar uma ideia de quão ocupado o sistema esteve nos últimos 1,5 e 10 minutos. Uma média de 0 significa nenhuma atividade, 1 significa que a CPU está totalmente utilizada e qualquer coisa acima de 1 significa que há mais processos querendo executar do que o tempo de CPU do sistema.
As opções Pesquisar e Executar são para pesquisar processos e executar novos, respectivamente. Veja as seções abaixo para mais detalhes.
Visualizando, eliminando ou redefinindo a prioridade de um processo
Você pode ver os detalhes completos de qualquer processo em execução clicando na entrada da coluna ID do processo em qualquer uma das telas na página principal . Isso o levará para a página de informações do processo, mostrada nesta captura de tela.
A página exibe todas as informações disponíveis sobre o processo, incluindo sua linha de comando completa, comando pai e quaisquer subprocessos. Você pode simplesmente ir para a página de informações do pai clicando em seu comando, ou para a página de qualquer um dos subprocessos clicando em seu ID de processo. Uma lista de arquivos que o processo abriu e as conexões de rede que está usando no momento pode ser visualizada clicando no botão Arquivos e conexões.
O processo pode ser interrompido usando um sinal TERM clicando no botão Terminate Process. Como isso pode ser ignorado por alguns comandos, o botão Kill Process pode ser usado para enviar um sinal KILL se a terminação falhar. A menos que o processo seja travado dentro de uma chamada de sistema do kernel, eliminá-lo tem garantia de sucesso.
Outros sinais podem ser enviados selecionando o tipo de sinal próximo ao botão Enviar sinal antes de pressioná-lo. Alguns dos sinais mais úteis são:
HUP Para muitos processos do servidor, este sinal fará com que eles releiam seus arquivos de configuração. STOP Suspende o processo até que um sinal CONT seja recebido. CONT Retoma um processo que foi suspenso por um sinal de STOP.
A página de informações também pode ser usada para alterar o bom nível de um processo em execução, dando a ele uma prioridade mais alta ou mais baixa.Para alterar a prioridade de um processo, selecione um novo nível na lista * Nível legal * e clique no botão Alterar. Níveis mais baixos significam prioridades mais altas, então um processo com um bom nível de 10 terá mais tempo de CPU do que um com nível 5.
Em um sistema com vários usuários, processos de longa execução que ocupam muito O tempo de CPU deve receber um nível de bom mais alto para que eles não desacelerem os processos que estão interagindo com os usuários. Como alternativa, você pode acelerar um processo às custas de outros, atribuindo a ele um nível de nice inferior. Você deve ter cuidado ao definir um nível extremamente baixo (como 20), pois todos os outros processos podem perder tempo de CPU, fazendo com que o sistema pare de responder.
Procurando por processos
Se você tiver um grande número de processos em execução em seu sistema e quiser encontrar um ou mais para eliminar ou visualizar, o recurso de busca do módulo Running Process torna é fácil. Para localizar processos, siga estas etapas:
- Na página principal do módulo, clique no link Modo de exibição de pesquisa. Isso o levará a um formulário de pesquisa conforme mostrado na captura de tela abaixo.
- O formulário mostra vários critérios diferentes para encontrar processos, dos quais você pode escolher um selecionando o botão de opção ao lado dele. Os critérios são: Pertencente a Processos pertencentes ao usuário cujo nome você inserir em seguida a esta opção será encontrado. # * Matching Encontra processos cujos comandos ou argumentos contém o texto que você insere próximo a esta opção. Usando mais de Localiza processos usando mais do que a porcentagem especificada de tempo de CPU. o sistema de arquivos escolhido ou está acessando qualquer arquivo nele será encontrado. Útil se você não puder não desmonte um sistema de arquivos porque ele está ocupado. Usando arquivo Localiza processos que têm o arquivo inserido aberto para leitura ou gravação. Se você inserir um diretório, qualquer processo que o tenha como diretório atual será encontrado. Usando a porta Encontra processos que estão enviando, recebendo ou ouvindo o tráfego de rede na porta inserida usando o protocolo escolhido. Útil se você souber o número da porta em que um servidor está escutando e quiser encontrar o processo do servidor. Usando endereço Encontra processos que têm uma conexão de rede aberta para o endereço inserido ou que estão ouvindo nesse endereço se for para uma interface em seu sistema.
- Para filtrar os processos de pesquisa do Webmin dos resultados, selecione a opção Ignorar processos de pesquisa no resultado. Isso pode ser útil ao pesquisar pelo uso da CPU, já que os processos do Webmin usam muito tempo da CPU.
- Depois de selecionar os critérios de pesquisa, clique no botão Pesquisar. Todos os processos correspondentes serão exibidos abaixo do formulário.
- Se você deseja ver informações adicionais sobre um processo, altere sua prioridade ou envie um sinal para ele sozinho, clique em seu ID de processo nos resultados.
- Para eliminar todos os processos correspondentes, clique no botão Terminate Processes ou Kill Processes. Você também pode enviar qualquer sinal para todos os processos selecionando-o na lista ao lado do botão * Enviar sinal *. Uma página será exibida listando cada ID de processo e se ele foi sinalizado ou eliminado com sucesso.
Executando um processo
O módulo também pode ser usado para executar comandos simples, tanto em primeiro plano para que sua saída seja exibida, ou em segundo plano como daemons. Isso pode ser útil se você quiser apenas executar um comando sem ter que fazer login via telnet ou SSH (ou se um firewall estiver impedindo um login telnet ou SSH). As etapas a seguir são:
- Na página principal do módulo, clique no link Executar ao lado das opções do modo de exibição. Isso o levará ao formulário para iniciar um novo processo.
- Digite o comando que deseja executar no campo * Comando para executar *. Operadores de shell e caracteres especiais como;, & lt, > e & & pode ser usado.
- Se o comando for algo que demorará muito para ser executado, você pode definir a opção Modo de execução como Executar em segundo plano para que o Webmin o coloque automaticamente em segundo plano. No entanto, se quiser ver a saída do comando, deixe a opção definida como Aguardar até a conclusão.
- Insira qualquer entrada que deseja alimentar para o comando no campo * Entrada para o comando *.
- Clique no botão Executar para executá-lo. Se a opção Aguardar até a conclusão foi selecionada, qualquer saída do comando será exibida.
Executar comando
Opções de controle de acesso ao módulo
Por padrão, qualquer usuário Webmin com acesso a este módulo pode gerenciar todos os processos em execução no sistema, como se ele estivesse logado como root. No entanto, usando o módulo Usuários e Grupos, você pode limitar o acesso de um usuário para que ele só possa matar ou restaurar processos pertencentes a um usuário Unix específico.Também é possível restringir um usuário ao modo somente leitura, permitindo que ele veja apenas os processos ao não alterá-los de nenhuma forma ou iniciar novos.
Você deve ler o capítulo 52 primeiro para aprender mais sobre o controle de acesso ao módulo e como conceder a um usuário acesso ao módulo Running Processes. Feito isso, para editar o acesso de um usuário Webmin a este módulo, as etapas a seguir são:
- No módulo Usuários Webmin, clique em Processos em execução ao lado do nome do usuário ou grupo que você deseja restringir.
- Altere o campo Pode editar a configuração do módulo? para Não.
- Para dar ao usuário Webmin acesso apenas aos processos pertencentes a um usuário Unix específico, insira o nome de usuário no campo * Gerenciar processos como usuário *. Se os usuários Unix e Webmin tiverem o mesmo nome, você pode selecionar o usuário Webmin atual. Isso pode ser útil ao configurar o controle de acesso do módulo para um grupo no qual deseja cada um membro para ser capaz de gerenciar apenas seus próprios processos.
- Para colocar o usuário no modo somente leitura, defina os campos * Pode matar e renice processos? * e Pode executar comandos? * como * Não. Se isso for feito, realmente não importa o nome de usuário que você inserir na etapa 7, porque nenhum gerenciamento de processo pode ser feito.
- Clique no botão Salvar para ativar as alterações.
Para restringir os processos que um usuário Webmin pode gerenciar, o código do módulo simplesmente muda para ser executado como o usuário Unix especificado na etapa 4. Porque um usuário Unix não pode eliminar ou priorizar novamente qualquer processo que ele não possui, trocar de usuário desta forma faz com que o sistema operacional imponha automaticamente o controle de acesso ao processo para o Webmin.
Outros sistemas operacionais
Porque existem processos em todas as versões do Unix com quase atributos idênticos, este módulo parece quase exatamente o mesmo em todos os sistemas operacionais suportados.
Ao visualizar informações detalhadas sobre um processo, informações diferentes podem estar disponíveis em outros sistemas operacionais. A gama de níveis agradáveis também pode ser diferente, mas níveis mais baixos ainda significam uma prioridade mais alta e vice-versa.
Ao pesquisar por um processo, os critérios Usando sistema de arquivos, Usando arquivo ou Usando porta podem não estar disponíveis. Essas opções dependem dos comandos fuser e lsof que não estão disponíveis ou instalados por padrão em todos os sistemas.