Existem vários casos onde você precisará limpar manualmente uma compilação:
Você a interrompeu manualmente.
O pointyhat
foi reiniciado enquanto uma
compilação estava executando.
O qmanager
falhou e reiniciado
O processo para interromper de forma manual uma compilação
é um tanto quanto confuso. Primeiro você precisa identificar o
tty
em que ela está sendo executada rodando
(ou lembrando-se da saída do tty(1)
quando você iniciou a compilação, ou usando ps
x
para identificá-lo). Você precisa certificar-se de
que não existe mais nada importante rodando neste
tty
, você pode verificar isto executando o
comando ps
, por exemplo,
ps -t p1
lista os processos em execução
no tty 1. Se não existir mais nada importante, você pode
encerrar o terminal facilmente com
pkill -t pts/1
; ou pode utilizar o
kill -HUP
, por exemplo,
ps -t pts/1 -o pid= | xargs kill -HUP
.
Você deve Substitur o p1
pelo
tty
utilizado na compilação.
A compilação de pacote enviada pelo make
para as máquinas clientes irá se auto limpar após alguns minutos
(verifique com ps x
até que todos
finalizem).
Se você não encerrar o make(1), ele irá iniciar novas
tarefas de compilação. Se você não encerrar o
dopackages
ele irá reiniciar toda a
compilação. Se você não encerrar
os processos pdispatch
, eles irão continuar
(ou reaparecer) até concluir a compilação do pacote.
Para liberar recursos, você precisa limpar as máquinas
clientes executando o comando build cleanup
.
Por exemplo:
%
/var/portbuild/scripts/build cleanup i386 8-exp 20080714120411 -full
Se você esquecer de fazer isso, então os
chroot
s da compilação antiga não serão limpos
nas próximas 24 horas, e nenhum novo trabalho será iniciado no
seu lugar enquanto o pointyhat
achar que esta
máquina ainda está ocupada.
Para verificar, utilize o comando
cat ~/loads/*
para
mostrar o status das máquinas clientes; a primeira coluna é o
número de trabalhos que ela pensa estar executando, e isso pode
estar bem próximo da carga média. O loads
é
atualizado a cada 2 minutos. Se você executar um
ps x | grep pdispatch
e ele listar menos
trabalhos do que os que o loads
pensa estarem
em uso, você está em apuros.
Você pode ter problemas com instâncias do comando
umount
ficando congeladas. Se isto ocorrer,
você terá que usar o script
allgohans
para executar um comando
ssh(1) em todos os clientes deste ambiente de compilação.
Por exemplo:
Vai lhe dar um df
, e
Supostamente irá resolver o problema dos
mounts
que não foram desconectados pelo
umount
. Você terá que continuar
executando-os pois podem existir diversas
montagens.
Ignore o seguinte:
Os dois primeiros significam que o cliente não tinha o sistema de arquivos montado; os dois últimos são um defeito.
Você também poderá ver mensagens sobre o
procfs
.
Após concluir tudo que foi exposto acima, remova o arquivo
antes de tentar reiniciar a compilação. Se você não o fizer,
o ${arch}
/lockdopackages
simplesmente será encerrado.
Se você atualizou a árvore de ports
antes
de reiniciar, você pode precisar reconstruir o
duds
, o INDEX
, ou
ambos os arquivos.
Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Para perguntas sobre FreeBSD, leia a
documentação antes de contatar
<questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para
<doc@FreeBSD.org>.