실제로 프로세스를 덜 실행할 수는 없습니다. . nice
우선 순위를 낮추는 데 사용할 수 있지만 다른 프로세스와 관련이 있습니다. 프로세스가 실행되는 동안 CPU 쿨러를 실행하는 방법 usleep(3)
은 프로세스를 특정 시간 동안 실행 상태에서 강제 종료하는 데 사용 하는 것이지만 패치를 tar
사용하거나 LD_PRELOAD
메커니즘을 tar
사용하여 많이 사용하는 패치 기능을 제공하는 것입니다 (예 : fopen(3)
).
가장 좋은 해결 방법은 슈퍼 유저에서 언급 한 하드웨어 인 것 같습니다. 랩탑을 시원하게 유지하거나 CPU 시계를 낮추는 것입니다.
성가 시지만 실행 가능한 해결 방법 (실제로 kludge)은 '매크로 스코픽'수준에서 작동합니다. tar
200ms마다 100ms 를 실행하는 대신 2 초마다 1 초씩 실행할 수 있습니다. 참고 : 이것은 끔찍하고 끔찍한 kludge입니다. 그러나, 그것은 심지어 작동 할 수도 있습니다!
tar cjf some-file.tar.bz2 /some-directory &
while true; do
sleep 1 # Let it run for a second
kill -STOP $! 2>/dev/null || break
sleep 1 # Pause it for a second
kill -CONT $! 2>/dev/null || break
done
첫 번째 sleep
는 휴면 시간을 조정하고 두 번째는 런타임을 조정합니다. 현재 상태는 듀티 사이클이 50 %입니다. 온도를 낮추려면 듀티 사이클을 25 % 이하로 줄여야합니다 (1 초 실행, 3 초 슬립 = 4 초마다 1 = 25 % 듀티 사이클). 그런데 쉘 명령 sleep
은 시간이 조금 걸릴 수 있습니다. 그래서 당신은 말할 수 sleep 0.1
있습니다. 확실하게 0.001 이상으로 유지하고 스크립트 실행에 시간이 더 걸린다는 것을 잊지 마십시오.