- A partir de uma sessão shell,
execute o comando tty(1) para determinar o nome de
identificação do terminal associado à sessão. Anote esta
identificação.
- Verifique com ps(1) quais são TODOS os seus processos em
execução no momento.
- A partir da sessão shell iniciada no item
1, inicie em background 2 (dois) processos
emacs(1) e 3 (três) processos xterm(1). Faça isto em
uma única linha de comando.
ATENÇÃO: Ao executar emacs(1), use como argumento um
nome de arquivo qualquer. Ao executar xterm(1), use a opção
-title para definir um título diferenciado para
cada janela associada. Uma vez em execução,
minimize/iconifique cada janela emacs.
- Em cada xterm iniciado no item anterior, use
tty(1) para determinar a identificação de cada terminal. Anote
estas identificações.
- Na sessão shell iniciada no item 1,
verifique com ps(1) quais são TODOS os seus processos em
execução no momento. Em seguida, execute os comandos jobs e
jobs -l. Observe a diferença entre os resultados e diga:
que informações adicionais a opção -l do comando
jobs fornece?
- Em uma das sessões shell, execute a linha de comando
abaixo:
xterm ; cat ; emacs &
Explique:
- Porque o comando emacs não é executado em
background logo que você finaliza a linha de comando com
um
?
- Em que momento emacs será executado?
- Como terminar a execução do comando xterm PERMANECENDO
na sessão onde você executou a linha de comando?
- Terminado o processo xterm, cat(1) é
executado. SUSPENDA o processo associado a cat e execute
jobs -l. Explique o que significam as informações
exibidas.
- Em cada uma das sessões shell, execute um processo
emacs em background e outro em foreground.
Use apenas 1 (uma) linha de comando.
- A partir da situação estabelecida no item anterior, faça com que
todos os processos emacs que estão em foreground
passem para background.
- Neste ponto, TODOS os processos associados a emacs(1)
devem estar em background. Faça com que em cada sessão
shell volte a existir um processo emacs em
foreground.
- A partir de uma sessão shell, TERMINE TODOS os processos
(exceto bash) iniciados em alguma OUTRA das sessões
shell ativas no momento.
DICA: Use ps(1) e a informação de tty(1)
colhida nos ítens iniciais para identificar a janela xterm
de interesse e seus respectivos processos.
- Termine todos os seus processos que estejam associados ao comando
emacs, usando kill(1).
- Termine todos os seus processos que estejam associados ao comando
xterm, EXCETO aquele associado à primeira sessão
shell iniciada no item 1. Use kill(1).
- Como verificar quais processos estão ocupando mais que 50% de
CPU, incrementando suas prioridades em 10?
DICA: Ver ps(1) e renice(1).
- Defina um alias que ao ser executado, termine todos os processos
associados com o navegador WEB que você usa e em seguida execute
logout do sistema.
- Ao produzir um trabalho para as disciplinas do DINF nos
computadores do LabINF, você colocou um processo em execução e por
algum motivo ignóbil, escabroso, enigmático e psicomático, sua sessão
shell, bem como sua interação com o ambiente de janelas
simplesmente travaram. Qual deve ser seu procedimento para
fazer seu terminal voltar ao normal ANTES DA SOLUÇÃO DERRADEIRA DE
REINICIAR O COMPUTADOR? Lembre que você tem vários terminais ao seu
lado no LabINF.
DICAS: Pense primeiro em quais processos você deve
investigar e qual a ordem em que você deve terminá-los.
NOTA: O comando su(1) pode ser usado para, a partir
de uma sessão shell iniciada por um outro usuário, permitir
que você inicie ums sessão shell com seu login.
Como alternativa sempre existe o comando ssh(1) com a opção
-l.