
como definir a hora no Linux dessa maneira:
1 segundo definido como 10 segundos (10 segundos = 1 segundo de tempo próprio)
Quero enganar todos os processos executados lá para usar um tempo 10x mais rápido. então sleep(1)
durará 0,1 segundos reais.
como conseguir isso?
Responder1
Você pode executar um comando (incluindo um shell e todos os seus filhos) com uma frequência de clock arbitrária mais rápida usando o warp
comando doast-abertopacote. Ele usa LD_PRELOAD, portanto não funciona com setuid ou setgid ou (agora relativamente raro) programas vinculados estaticamente. Depágina de manual warp:
warp [opções] data [comando [arg...]]
urdiduraexecuta um comando vinculado dinamicamente em um período de tempo diferente, interceptando chamadas de sistema relacionadas ao tempo e modificando os tempos vistos porcomandousando a fórmula:
tempo' = tempo + warp + (tempo - base) * (fator - 1)
ondeurdiduraé data agora,baseé a data por padrão efatoré 1 por padrão.
OPÇÕES
-b, --base = data
Defina a data base ou de início comodata. Útil para repetir um conjunto de testes. O valor padrão é data.
-f, --fator=fator
Defina o relógio distorcido para marcarfatorsegundos por segundo real. O valor padrão é 1.
urdiduraexecutacomandocom argumentos opcionais, ouehsecomandoé omitido. Todos os processos executados porcomandosão distorcidos no mesmo período de tempo. O tempo avança paracomandoe seus filhos a uma taxa defatorvezes o relógio do sistema. Quaisquer arquivos criados porcomandoou seus filhos parecerão mais novos quedataparacomandoe seus filhos, mas na verdade estarão no período normal para comandos não distorcidos.