NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigosLinux : Linuxbasico014
Quer receber novidades e e-books gratuitos?

Linux Básico – Parte XIV

 

7.4 – Listando a árvore de processos

 

Em alguns casos pode ser útil saber qual a interdepêndencia entre os processos que estão rodando no sistema. O linux possui um comando para este fim chamado pstree

 

A. D igite:

 

Figura 63 – Árvore dos processos

 

Observe que o init é o pai de todos os processos que estão no lado direito e que o comando pstree que acabamos de rodar tem como pai o bash ou seja o shell. O shell será o pai de qq comando que venhamos a executar.

 

7.5 – Ciclo de vida de um processo

 

Quando um processo existente faz uma cópia exata dele mesmo criando assim um novo processo, damos a esse procedimento o nome de fork. Lembrando que o processo filho tem o mesmo ambiente que o seu pai, apenas o ID é diferente.

 

Após esse processo o espaçamento de endereços do processo filho é alterado com os novos dados, a esse procedimento damos o nome de exec.

 

Os mecanismos de fork e exec subtituem o comando antigo pelo novo, enquanto que o ambiente na qual o programa roda permanece o mesmo, incluindo configurações, variáveis de  ambiente e prioridade.

 

Esse mecanismo é usado para criação de todos os processos no Linux.

 

A figura abaixo ilustra esse processo.

 

Figura 64 – Processo de fork e exec

 

Há casos em que o init se torna o pai de um processo mesmo não tendo gerado o mesmo. Alguns processos usam o artificio de fazer com que seus processos flhos continuem rodando mesmo quando eles não estão mais rodando, passando o controle de seus processos filhos para o init. O processo xterm é um bom exemplo disso.

 

Em casos não muito comuns, um processo filho leva mais tempo para terminar sua execução do que o processo pai pode esperar, nesse caso tornando-se um processo orfão.

 

7.6 – Finalizando processos

 

Quando um processo finaliza normalmente, ele envia um status de saída para o processo pai sinalizando o seu término. Esse status de saída é um número.

 

Processos terminam porque eles recebem um sinal. Diversos sinais podem ser enviados para um processo, para isso usamos o comando kill. Muitos sinais são para uso interno do sistema.

 

Sintaxe : kill – [sinal] [pid do processo]

 

Para saber quais sinais podem ser usados com o comando kill, digite : kill –l. Abaixo uma relação dos sinais que podemos usar a nível de usuário.

 

 

A seguir ilustraremos o uso do comando kill.

 

Vamos rodar um grep e interromper sua execução.

 

A. Digite:

 

Fig 65 – Pid do processo grep

 

De posse do pid:

 

B. Digite:

 

Fig 66 – Processo pid interrompido

 

Lembrando que como estamos logados como curso só podemos interromper nossos próprios processos. A única exceção a essa regra é o root, que como superusuário pode interromper qualquer processo. Veja o que acontece quando tentamos interromper um processo do root.

 

C. Digite:

 

 

Vamos tentar interromper o processo 1132.

 

D. Digite:

 

 

Observe que a mensagem de “operação não permitida” aparece na tela.

 

» O kill é muito útil em casos de lentidão extrema do sistema. Nesses casos procuramos por processos que estejam consumindo muitos recursos e necessitamos interrompê-los para que o sistema volte ao seu estado normal.

 

7.7 – Programando execução de processos

 

É muito comum nos depararmos com situações em que é necessário executar uma tarefa específica em um determinado horário, ou ainda em intervalos regulares. Um bom exemplo de uma tarefa com execução programada é um backup do sistema. Para esses dois propósitos usamos os comandos at e cron respectivamente. Veremos cada um deles.

 

7.7.1 – Usando o at

 

Sintaxe: at [opção] [hora]

 

Usamos o at para executar uma tarefa em dia e /ou hora especifica.

 

Vamos programar a execução de um find para daqui a 10 min. Supondo que a hora do sistema seja 10:06AM.

 

A. Digite:

 

 

B. Digite:

 

 

C. Digite: find / -name n* -depth -print

 

D. Digite : CRTL+D. Isso finaliza o at.

 

Observe que o job foi programado para rodar as 10:16AM.

 

Supondo que nesse momento são 10:16AM, veremos se o find que programamos está mesmo rodando.

 

E. Digite:

 

Figura 67 – Verificando a execução do find

 

» Uma outra forma de saber se o find está rodando, seria mostrar na tela uma mensagem, ou direcionar a saída do find para um arquivo ou ainda mandar um e-mail usando a opção “m” do at. No último caso, a saída do comando programado vai para o arquivo /var/spool/mail/curso

 

Supondo que quisessemos executar a mesma tarefa daqui a 3 dias:

 

F. Digite:

 

 

Em uma data específica:

 

G. Digite:

 

 

7.7.1.2 – Listando jobs da fila

 

Podemos monitorar os jobs que estão na fila esperando para serem executados com o comando atq.

 

Voltando ao caso anterior veríamos:

 

Figura 68 – Listando jobs na fila

 

» Observe que o número 1 a esquerda indica o id do job.

 

7.7.1.3 – Removendo jobs da fila

 

Usamos o comando atrm para esse propósito

 

Sintaxe : atrm [número do job]

 

Para remover o job do caso anterior faríamos:

 

H. Digite:

 

 

7.7.2 – Usando o cron e crontab

 

O at possui a limitação de não permitir executar tarefas em intervalos regulares.

 

O cron tem essa facilidade. O sistema cron é gerenciado pelo seu daemon. Ele coleta informações sobre quais programas e quando eles deveriam ser executados, das entradas crontabs do sistema e dos usuários. Somente o root tem acesso aos crontabs do sistema.

 

O comando crontab serve para criar e monitorar os jobs usando as opções “e” e “l” respectivamente. O arquivo crontab possui a seguinte notação, representado por 5 campos:

 

(0-59) (0-23) (1-31) (1-12) (0-7) [script]

 

 

» Se houver um (*) em um dos campos, isso significa que toda a faixa é aceita.

 

Vamos programar uma tarefa para rodar de 20 em 20 minutos, a tarefa consiste em procurar no disco arquivos que começam pela letra t.

 

Primeiramente vamos criar o script que fará parte do arquivo crontab.

 

B. Digite:

 

 

C. Digite:

 

Date

Find / -name t* -depth –print

 

D. Salve o arquivo e saia do vi

 

E. Digite:

 

 

Se não fizermos isso o arquivo não poderá ser executado

 

Agora vamos criar o crontab file

 

F. Digite:

 

 

» Observe que um novo arquivo é criado usando o vi

 

G. Digite:

 

20 * * * * /home/curso/script

 

» Dessa forma programamos o script para rodar de 20 em 20 minutos.

 

H. Digite: wq

 

» A opção “e” serve também para editar o arquivo crontab

 

Para sabermos se o script está executando conforme planejado, basta listarmos as últimas inclusões no arquivo /var/spool/mail/curso com tail.

 

Sintaxe: tail [nome do arquivo]

 

Se quisessemos programar a mesma tarefa para rodar todas as terças feiras às 18 horas, o arquivo crontab seria:

 

* 18 * * 2   /home/curso/script

 

Para programar a mesma tarefa para rodar de segunda a sexta faríamos:

 

* 18 * * 1-5   /home/curso/script

 

Para programar para segundas, quartas e sextas faríamos:

 

* 18 * * 1,3,5   /home/curso/script

 

Para listar o arquivo crontab:

 

I. Dgite:

 

 

Para deletar o arquivo crontab:

 

J. Digite:

 

 

» Lembrando que um arquivo crontab pode ter várias tarefas.

 

Linux para Usuários - Básico
Instalando o Red Hat Linux
Introdução ao Linux
Comandos Básicos - Parte 1
Comandos Básicos - Parte 2
Comandos Básicos - Parte 3
Comandos Básicos - Parte 4
Edição de Texto - Parte 1
Edição de Texto - Parte 2
Edição de Texto com o vi - Parte 1
Edição de Texto com o vi - Parte 2
Sistema de Arquivos
Usando a forma literal
Processos - Parte 1
Processos - Parte 2 - Comandos
Processos - Parte 3 - Mais Comandos
Redirecionamento e Operadores
O Comando Grep
Configurações do Ambiente
Arquivos do Setup do Shell e o "/etc/profile"
Configurações de Rede
Comandos de Rede
Comandos de ftp e Instalação do lynx
Utilização e Configurações do Lynx
Instalação e Utilização do Browser Elinks
Parte 1 - A história do Linux
Parte 2 - As Distribuições Linux
Ubuntu Linux - Parte 2 - Conhecendo e Instalando o Ubuntu Linux - Parte 1
Ubuntu Linux - Parte 3 - Conhecendo e Instalando o Ubuntu Linux - Parte 2
Faça a sua declaração de imposto de renda com Linux
Linux para Administradores - Básico
Novidades sobre o Mandriva 2006
Configurando o Ambiente Gráfico no Linux
Instalando o Mandriva – Parte 1
Instalando o Mandriva – Parte 2
Instalando o Mandriva – Parte 3
Instalando o Mandriva – Parte 4
Ubuntu Linux - Parte 1 - Obtendo os CDs do Ubuntu gratuitamente
Mandriva Linux – Repositório com URPMI
Aprenda NFS e instale o Linux via Rede
Configurando um servidor de horas no Linux e Windows
Configure o Raid no Linux – Prático
Configurando o Red Hat Para ser Acessado Remotamente em Modo Gráfico
Instalando e configurando o Tomcat no Linux com Java - Prático
Mandriva Linux – Gerenciador de Pacotes - Usando o URPMI - Parte 1
Mandriva Linux – Gerenciador de Pacotes - Usando o URPMI - Parte 2
Gerenciando o Windows a partir do Linux
Gerenciando o Linux a partir do Windows
Configurando aplicações JSP via browser com o Tomcat
CACIC
CACIC - O que é o CACIC?
CACIC - Fazendo o download do CACIC
CACIC - Descompactando os arquivos do CACIC e Configurando o MySQL
CACIC - Configurando o php e ftp no Linux
CACIC - Configurando o Gerente do CACIC

 

Quer receber novidades e e-books gratuitos?

 
 

Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

Todos os direitos reservados, Júlio Battisti 2001-2024 ®

LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO

DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI