processes unix process control
Gestão de processos em Unix:
No Unix, todas as instruções fora do kernel são executadas no contexto de um processo.
Um processo é uma sequência de instruções e cada processo possui um bloco de dados controlados associado a ele. Os processos podem ser manipulados de maneira semelhante à forma como os arquivos podem ser manipulados.
o gateway padrão não está disponível no Windows 10
Por exemplo, como ‘ls’ pode ser usado para ver a lista de arquivos, ‘ps’ pode ser usado para ver a lista de processos.
Vídeo Unix nº 23:
Neste tutorial, vamos cobrir quais informações relacionadas ao processo são armazenadas e também descrever alguns comandos que são usados para gerenciar processos. Também forneceremos uma breve descrição de como os scripts de comando podem ser depurados.
O que você aprenderá:
Informação do processo Unix
A tabela de processos contém informações de todos os processos em execução atualmente. O principal objetivo desta tabela é gerenciar todos os processos em execução de forma eficaz.
Observação: Como um sistema operacional multitarefa e multiusuário, o Unix terá muitos processos rodando ao mesmo tempo.
A tabela contém informações como:
- Id de Processo
- ID do processo pai
- Estado dos processos
- utilização do CPU
Os processos no Unix passam por vários estados dependendo de várias circunstâncias. As mudanças de estado podem ser acionadas pelo fato de um processo precisar aguardar a conclusão de uma operação de leitura ou gravação ou quando um processo diferente e mais urgente precisar ser executado.
Comandos de controle de processo
Existem vários comandos disponíveis para revisar e manipular processos. O comando 'ps' pode ser usado para visualizar as informações de status do processo.
| Comando | ps - fornece informações de todos os processos em execução. |
|---|---|
| Sintaxe Comum | $ ps (OPÇÕES) |
| Exemplo 1 | $ ps Dá informações sobre o processo incluindo o PID, nome do terminal, hora de criação e nome dos processos. |
Conforme discutido em um tutorial anterior, os processos podem ser classificados como primeiro plano, segundo plano ou daemon. Quando um comando é executado a partir do terminal, ele é executado normalmente em primeiro plano. Para executar um processo em segundo plano, o botão ‘&’ no final do comando pode ser usado.
Exemplo:
$ grep “how” file1 > file2 &Este comando pesquisará as linhas que contêm o padrão “como” e armazenará a saída no arquivo2. Se o arquivo1 for razoavelmente grande, podemos continuar com outras ações e executar este comando em segundo plano. Com o ‘&’ no final, este comando será executado como um processo em segundo plano.
É possível suspender um processo de primeiro plano usando o comando ‘^ Z’. Este comando move o processo de primeiro plano atual para um estado suspenso em segundo plano. A partir daí, o processo pode ser empurrado para retomar em segundo plano usando o comando 'bg' ou pode ser trazido de volta para o primeiro plano usando o comando 'fg'.
Cada processo também está associado a uma prioridade. Isso é usado para garantir que o sistema operacional seja capaz de alocar tempo de forma justa para várias tarefas de processamento. O comando 'bom' pode ser usado para reduzir a prioridade de um processo e, assim, ser 'bom' para os outros processos, ou seja,
$ bom
Esta linha irá executar o comando especificado em uma prioridade mais baixa - por padrão, a prioridade será reduzida em 10. O comando também leva um parâmetro que pode ser usado para usar um nível diferente de 'gentileza'.
Exemplo:
$ nice -20 lsEste comando executa 'ls' com a prioridade reduzida em 20.
Também é possível aumentar a prioridade com uma 'gentileza' negativa. No entanto, isso precisa de permissão de superusuário.
Quando um terminal ou sessão de login é fechado, ele envia o sinal SIGHUP para três processos filhos. Por padrão, este sinal fará com que os processos filho sejam encerrados. O comando ‘nohup’ pode ser usado para permitir que os comandos continuem em execução mesmo quando a sessão de login for encerrada.
Exemplo:
$ nohup soft file1 > file2Com este comando, a classificação do arquivo 1 e o salvamento no processo do arquivo 2 continuarão, mesmo que tenhamos efetuado logout do sistema.
O comando ‘kill’ pode ser usado para encerrar qualquer um dos processos, dependendo das permissões.
Exemplo:
$ kill (options) Este comando encerrará um processo com a id do processo. O PID de um processo pode ser obtido usando o comando 'ps'.
Este comando 'at' é usado para executar comandos em uma determinada data e hora no futuro.
Exemplo:
$ at 8pm sort file1>file2Depuração Unix
O Unix fornece uma série de mecanismos para ajudar a encontrar bugs em seus scripts de comando. Esses mecanismos podem ser usados para visualizar um traço do que está sendo executado, ou seja, a sequência em que os comandos são executados. O rastreamento pode ser usado para entender e verificar a lógica e o fluxo de controle do script.
=> definir -v
modo detalhado: Definir esta opção antes de executar um comando garantirá que o comando que será executado seja impresso no stdout antes de ser realmente executado.
=> definir -x
modo de rastreamento de execução: Definir esta opção exibirá cada comando conforme é executado junto com seus argumentos.
=> definir -n
modo não-exec: Definir esta opção mostra quaisquer erros sem realmente executar nenhum comando.
Confira nosso próximo tutorial para saber mais sobre Scripting avançado de shell.
perguntas e respostas da entrevista linux para experientes
PREV Tutorial | PRÓXIMO Tutorial
Leitura recomendada
- Comandos de controle de processos Unix como Ps e Top (Parte C)
- Comandos Unix: Comandos Unix básicos e avançados com exemplos
- Comandos de processamento de texto Unix: filtros Unix com exemplos
- Tutorial de Pipes Unix: Pipes em Programação Unix
- Mais Filtro Unix e Awk, Comandos Sed em Processamento de Texto
- Argumentos de linha de comando em Unix Shell Script com exemplo
- Tutorial do UNIX para iniciantes (mais de 20 vídeos de treinamento aprofundado do Unix)
- Como comparar dois arquivos no Unix: Comandos de comparação de arquivos