Como renunciar a um make com várias tarefas?

0

Estou executando uma compilação muito grande do kernel e gostaria de renice de todo o processo para pelo menos -1 , para que ele tenha um pouco mais de tempo de CPU. Atualmente, não estou executando mais nada na máquina.

A compilação já está em execução e não quero pará-lo. Existe alguma maneira de renice todas as tarefas que são spawned ? Eu tentei:

renice -n -10 -p [the make process]

Mas tudo gerado ainda é um priority 0 .

    
por Brydon Gibson 12.09.2018 / 20:02

1 resposta

0

A ferramenta pstree já pode exibir uma árvore de processos. Ele não tem um modo de saída "bruto", portanto, é necessária uma análise de saída.

É vigoroso (o tempo é calculado, alguns processos já apareceram ou desapareceram) e pode ser propenso a erros de análise (por exemplo, se um subprocesso muda seu nome e imita a saída do pstree com números e parênteses). Contanto que a confiabilidade total não seja necessária, isso deve funcionar:

MAKE_PID=[the make process]
renice -n -10 -p $(pstree -p $MAKE_PID | grep -o '([1-9][0-9]*)'|tr -d '()')

Em suma: exiba a árvore incluindo o pid para cada processo, mantenha apenas os valores pid: números entre parênteses, remova os parênteses, alimente o resultado para renegar.

    
por 12.09.2018 / 21:28

Tags