모든 시스템 타이머 장치를 일시적으로 중지합니다.

모든 시스템 타이머 장치를 일시적으로 중지합니다.

벤치마킹을 위해 Linux 시스템을 준비하기 위한 스크립트를 작성 중입니다. 이 외에도 모든 시스템 타이머 장치를 중지한 다음 이 작업을 재개하고 싶습니다.

요컨대, 나는 다음과 같은 것이 필요합니다 service crond stop/start.

지금까지 내가 찾은 것은 systemctl list-timers각각을 수동으로 중지한 다음 수동으로 시작하는 것뿐입니다. 더 나은, 더 일반적인 솔루션을 알고 계십니까?

답변1

현재 실행 중인 모든 타이머를 중지하려면 다음을 사용하면 됩니다.

systemctl stop '*.timer'

나중에 타이머를 다시 시작하려면 당시에 어떤 타이머가 실행 중이었는지 기억해야 합니다.

timers=$(systemctl list-units --type=timer --state=active --no-legend | awk '{print $1}')
systemctl stop $timers
# ...
systemctl start $timers

(분명히 유닛의 모드가 비활성 유닛과 일치하지 않아 systemctl start '*.timer'작동하지 않습니다.)

답변2

좋은 질문. man systemctl또는에 이 옵션이 표시되지 않습니다 .man systemd.timer

비교적 깨끗한 시스템에서는 벤치마크 중에 소수의 실행만 있을 수 있습니다. 따라서 systemctl stop처음으로 명령을 실행한 후 다음 번에는 중지/시작 명령을 bash 스크립트에 저장하고 이 방법으로 중지/시작 명령을 자동화하세요.

관련 정보