Você pode conseguir isso primeiro obtendo o PID do processo com:
ps aux | grep <process_name>
anote o PID (é a segunda coluna) e, em seguida, suspenda-o com:
kill -STOP <pid>
e continue com:
kill -CONT <pid>
Eu quero fazer uma grande transferência de disco, o que diminui a capacidade de resposta do meu sistema.
O que eu quero é um comando Unix que só irá executar o comando depois de ficar ocioso no console por alguns minutos. E se eu voltar no meio do caminho, ele suspenderá o trabalho. Até eu sair do meu computador.
Existe tal comando ou pacote de software?
[edit: A parte principal desta questão é como determinar se existe atividade na consola , para automaticamente suspender.]
Você pode conseguir isso primeiro obtendo o PID do processo com:
ps aux | grep <process_name>
anote o PID (é a segunda coluna) e, em seguida, suspenda-o com:
kill -STOP <pid>
e continue com:
kill -CONT <pid>
Que tal simplesmente executar o comando normalmente e depois usar "legal" nele para diminuir sua prioridade?
Uma vez eu escrevi um script "pause_io" que aceitava um número e depois o pgrep tipos de coisas que são susceptíveis de whomp meu IO, por exemplo rsync, updatedb e cp. Em seguida, ele mataria -STOP esses pids e dormir para o número fornecido de minutos e depois matar -CONT cada um deles. Quando precisei de acesso ágil ao caixa que eu executaria
pause_io 10 &
E eu teria 10 minutos sem I / O pesado
Foi algo assim:
#!/bin/bash
TIMEOUT=$(($1*60))
TASKS="mlocate|updatedb|rsync|cp"
pkill $TASKS -signal STOP
sleep $TIMEOUT
pkill $TASKS -signal CONT
rsync
tem uma opção --bwlimit
.
Execute o sugerido -STOP e -CONT como parte de algum protetor de tela, talvez?
(Se você estiver em um terminal: há também um protetor de tela para terminais, mas eu não sei seu nome ou onde definir suas opções. Tudo o que sei é que ele está ativado por padrão no Ubuntu: -)
Tags console hard-drive suspend