Como executar 1 programa de cada vez? [RESOLVIDO]

1. Como executar 1 programa de cada vez? [RESOLVIDO]

Nick Us
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!


  


2. MELHOR RESPOSTA

Matheus
pylm

(usa Gentoo)

Enviado em 29/09/2019 - 22:10h

Só fazer um loop.


for file in ls; do xz -z $file; done


O certo é rodar na pasta que tem os arquivos a serem compactados, troque as flags do xz pra o que tu usa normalmente.

Por curiosidade, o que tu tá comprimindo que precisa de 80 GB de RAM?

3. Re: Como executar 1 programa de cada vez?

Nick Us
Nick-us

(usa Slackware)

Enviado em 29/09/2019 - 22:17h

pylm escreveu:
Só fazer um loop.

for file in ls; do xz -z $file; done

Gostei da idéia do Loop, tentarei. Acredito que o loop vai conseguir usar um Tarefa de cada vez.


Por curiosidade, o que tu tá comprimindo que precisa de 80 GB de RAM?

O que exige 80Gb de RAM é a forma como estou comprimindo. Eu estou usando um dicionário de 1024 somente isso exige 80Gb de RAM. Não posso diminuir o dicionário pq isso aumenta drasticamente o tamanho final do arquivo. Eu expliquei isso na pergunta.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts