Nick-us
(usa Slackware)
Enviado em 29/09/2019 - 21:53h
Boa Noite a todos, minha dúvida acredito que seja básica.
Eu quero executar 1 programa, qdo esse programa terminar a tarefa, eu executarei outro comando e assim consecutivamente...
Vou explicar o problema. Preciso compactar arquivos, eu uso o xz para isso, porém da forma como eu uso, ele consome 80Gb de RAM, e ao fazer isso fico sem conseguir usar o meu computador porque ele joga meus programas que estou usando para a SWAP, tornando impossível usar eles.
OBS não me digam para limitar a memória do xz... Pois se eu fizer isso ele não executará a tarefa dada!
O Melhor para mim seria se houvesse uma forma de bloquear os programas ativos na RAM para que eles não fossem movidos para a SWAP, assim eu poderia usar meu PC. Bom, mas não sei se isso é possível.
Então a idéia que eu tive é: Executar um script quando eu for dormir, como todos os comandos que preciso executar, mais ou menos 10 comandos usando o xz.
Ou seja, teriam 10 comandos xz porque é 1 para cada arquivo em um local separado.
PORÉM preciso que seja executado 1 de cada vez ou seja, o 2º só executa qdo o 1º Terminar, pq cada comando desse consome 80GB de Memória, e se o 2º Comando for executado junto, ele não vai executar por falta de RAM e SWAP.
Alguém pode ajudar, ou alguém tem idéia melhor? Qualquer idéia melhor pode ajudar.
LEMBRANDO: Não quero usar o 7z pois no fim dá no mesmo, consome os mesmos recursos. E não quero um compactador menos eficiente obviamente. O xz já é menos eficiente em 20% do que o 7z mas escolhi o xz por alguns motivos, eu usava antes o 7z.
LEMBRANDO 2: O Consumo da RAM é baseado no tamanho do dicionário, que estou usando 1024. Mas se alguém souber manter a mesma compactação ou superior usando um dict menor, tudo bem. Lembrando que estou usando todas as melhores opções do xz, então sugerir usar -9e ou coisa parecida não vai ajudar!