Professor M.Sc. Thiago Leite [email protected]
Transcrição
Professor M.Sc. Thiago Leite [email protected]
Preparatório LPIC-1 Tópico 103.5 Professor M.Sc. Thiago Leite [email protected] quinta-feira, 8 de agosto de 13 1 Tópico 103.5 Fonte: http://wiki.lpi.org/wiki/LPIC-1_Objectives#103.5_Create.2C_monitor_and_kill_processes • Conhecimentos necessários • • Executar jobs em foreground e background • • Monitorar a atividade de um processo • Enviar sinais aos processos quinta-feira, 8 de agosto de 13 Enviar um sinal a um processo continuar a execução após o logout Selecionar e organizar processos para visualização 2 Tópico 103.5 Fonte: http://wiki.lpi.org/wiki/LPIC-1_Objectives#103.5_Create.2C_monitor_and_kill_processes • Lista de arquivos, ferramentas e utilitários • • • • quinta-feira, 8 de agosto de 13 & bg fg jobs • • • • • • • kill nohup ps top free uptime killall 3 Tópico 103.5 • Criar, monitorar e finalizar processos • maior parte dos processos iniciam, executam e finalizam sem a intervenção do usuário • o usuário pode interferir no funcionamento dos processos quinta-feira, 8 de agosto de 13 4 Tópico 103.5 • Processos • quando os programs (estáticos) são levados a memória para serem executados se tornam processos • todo comando executado se torna um processo • processos criados por processos são processos filhos quinta-feira, 8 de agosto de 13 5 Tópico 103.5 • Processos possuem atributos • • • lifetime - tempo que o processo gastou executando. • Parent process - processo que criou outro processo. O primeiro processo do sistema chama-se init e possui PID 1. • • Parent Process ID (PPID) - PID do processo que criou o processo filho. • Current working directory - diretório padrão associado a um processo. quinta-feira, 8 de agosto de 13 Process ID (PID) - número de identificação de um processo. User ID (UID) e Group ID (GID) - privilégios associados a um processo. Environment - variáveis associadas a um processo. Um processo filho geralmente possui as variáveis de ambiente do processo pai. 6 Tópico 103.5 • Comando ps • • quinta-feira, 8 de agosto de 13 estado dos processos em um determinado instante opções • • • • • • • • -a - todos os processos associados ao terminal -f - lista completa do parentesco dos processos e argumentos associados -l - lista longa de atributos associados aos processos -u - informações sobre usuários dos processos -w - permite exibir informações mais longas que a linha do terminal -x - apresenta processos não associados a terminais -C cmd - apresenta instâncias de cmd -U usuario - apresenta processos de “usuario” 7 Tópico 103.5 • Exemplos do comando ps $ ps -‐aux $ ps u -‐C httpd $ ps aux | grep bash quinta-feira, 8 de agosto de 13 8 Tópico 103.5 • Comando pstree • • exibe de modo hierárquico os processos opções • • • • • -a - exibe argumentos dos processos -c - exibe processos suprimidos -h - destaca o processo atual -n - organizar por PID -p - exibe o PID dos processos # pstree -‐nhacp quinta-feira, 8 de agosto de 13 9 Tópico 103.5 • Comando top • exibe os processos em outro formato e atualiza as informações esporadicamente • opções quinta-feira, 8 de agosto de 13 • • • • • -b - executa o comando em modo batch -d intervalo - especifica o intervalo de atualizações -i - apresenta apenas os processos mais interessantes -n num - número de atualizações limitadas -s - executa top em modo seguro 10 Tópico 103.5 • Comandos de uso interativo do top • • • • • • • quinta-feira, 8 de agosto de 13 “espaço” - atualiza o estado dos processos no momento h - apresenta imagem de ajuda k - envia sinal a um processo n - modifica o número de processos a exibir q - finaliza o top r - modifica a prioridade de um processo s - modifica o tempo de atualizações 11 Tópico 103.5 • Exemplos de uso do comando top $ top -‐d 1 $ top -‐bi -‐n 5 -‐d 1>processos_agora.txt quinta-feira, 8 de agosto de 13 12 Tópico 103.5 • Comando free • • mostra a quantidade de memória física disponível opções • • • • • -b - apresenta os números em bytes -k - apresenta os números em kilobytes -m - apresenta os números em megabytes -t - apresenta os totais -s n - apresenta novos resultados a cada n segundos $ free -‐s 1 quinta-feira, 8 de agosto de 13 13 Tópico 103.5 • Comando uptime • informações sobre o sistema e quanto tempo está em funcionamento desde o início do sistema $ uptime quinta-feira, 8 de agosto de 13 14 Tópico 103.5 • Processos quando executando ficam a espera de sinais (signals) • Sinais são mensagens enviadas para comunicação entre processos • não possuem strings, apenas um número de identificação • existem 32 tipos diferentes de eventos a serem enviados aos processos quinta-feira, 8 de agosto de 13 15 Sinal Num Descrição HUP 1 Reler as configurações de um serviço INT 2 Solicitar a interrupção de um processo (Ctrl+C) KILL 9 Finalizar um processo incondicionalmente TERM 15 Solicitar uma interrupção suave de um processo TSTP 20 Solicitar uma pausa no processo CONT 18 Solicitar a prosseguimento de um processo (Ctrl+Z) Sinais mais utilizados quinta-feira, 8 de agosto de 13 16 Tópico 103.5 • Comando kill • • • envio de um sinal a um processo se não especificado o sinal, é enviado o SIGTERM por padrão opções • -l n - exibe o nome do sinal considerando que n é o número correspondente ao sinal $ kill 1000 1001 $ kill -‐15 1000 1001 $ kill -‐SIGTERM 1000 1001 $ kill -‐sigterm 1000 1001 $ kill -‐TERM 1000 1001 $ kill -‐s 15 1000 1001 $ kill -‐s SIGTERM 1000 1001 quinta-feira, 8 de agosto de 13 17 Tópico 103.5 • Controle de Jobs • o shell permite criar jobs em background ou foreground • background - sem a interação do usuário • foreground - com a interação do usuário quinta-feira, 8 de agosto de 13 18 Tópico 103.5 • Iniciando processos em background $ firefox & [1] 2060 $ jobs [1]+ Running firefox & $ bg [1]+ /usr/bin/firefox & quinta-feira, 8 de agosto de 13 19 Tópico 103.5 • Se um job estiver em foreground é possível enviá-lo para background [Ctrl+Z] [1]+ Stopped firefox $ fg 1 firefox quinta-feira, 8 de agosto de 13 20 Tópico 103.5 • Comando nohup • desanexar um processo de um terminal $ nohup firefox & [1] 2171 $ nohup: ignoring input and appending output to `nohup.out' quinta-feira, 8 de agosto de 13 21