15 초마다 crontab
어떤 작업 (테스트 용)을 실행하도록 작성해야하는지 조언 해 주 /usr/bin/chromium-browser
시겠습니까?
15 초마다 crontab
어떤 작업 (테스트 용)을 실행하도록 작성해야하는지 조언 해 주 /usr/bin/chromium-browser
시겠습니까?
답변:
cron을 사용하면 1 분 단위로 아래로 갈 수 없습니다. 할 수있는 일은 매 분마다 작업을 실행하고 15 초 동안 기다렸다가 반복하는 스크립트를 실행하는 것입니다. 다음 crontab 줄은 some_job
15 초마다 시작 됩니다.
* * * * * for i in 0 1 2; do some_job & sleep 15; done; some_job
이 스크립트는 작업이 15 초 이상 걸리지 않는다고 가정합니다. 다음의 약간 더 복잡한 스크립트는 다음 인스턴스를 실행하는 데 너무 오래 걸린 경우 다음 인스턴스를 실행하지 않도록합니다. 형식 date
지원에 의존 %s
합니다 (예 : GNU 또는 Busybox, Linux에서는 괜찮을 것입니다). crontab에 직접 입력하면 crontab 행 %
과 같이 문자를 작성해야합니다 \%
.
end=$(($(date +%s) + 45))
while true; do
some_job &
[ $(date +%s) -ge $end ] && break
sleep 15
wait
done
[ $(date +%s) -ge $(($end + 15)) ] || some_job
그러나 15 초마다 자주 작업을 실행해야하는 경우 cron이 잘못된 접근 방법 일 수 있습니다. 단기 프로세스에서는 유니 세가 훌륭하지만 15 초마다 프로그램을 시작하는 오버 헤드는 무시할 수 있습니다 (프로그램 요구 방식에 따라 다름). 응용 프로그램을 항상 실행하고 15 초마다 작업을 실행할 수 없습니까?
1 2 3 4 ; do some_job & sleep 15; done
(마지막 수면은 다음 실행에 영향을 미치지 않습니다.) 내 변형)
다른 방법과 다른 접근 방식 : 각각 4 초씩 4 개의 크론 작업을 실행하십시오.
* * * * * sleep 00; timeout 15s some_job
* * * * * sleep 15; timeout 15s some_job
* * * * * sleep 30; timeout 15s some_job
* * * * * sleep 45; timeout 15s some_job
자신을 방해하는 일을 방지하기 위해, 우리는 GNU를 통해 15초에 그것의 실행 시간을 제한 로 coreutils ' timeout
각 작업. 그러나 15 초가 지나도 작업이 즉시 종료되지 않으면 여전히 문제가 발생할 수 있습니다. 문제가 발생한 경우이를 해결하는 방법에 대한 자세한 내용은 명령 설명서를 참조하십시오. 또한 명령이 15 초보다 오래 걸리고 시간 종료가 종료되면 0이 아닌 종료 상태가되어 cronjob-email을 트리거합니다.
요컨대, cron은 시간에 따라 세분화되지 않습니다. 가장 짧은 기간은 1 분입니다.
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .----- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * command to be executed
* * * * /usr/bin/chromium-browser
그러나 15 초마다 실행되는 스크립트를 작성할 수 있습니다 ...
* * * * * /usr/bin/chromium-browser
crontab에 줄 이 있습니다. 매뉴얼에 따르면 매 분마다 실행되지만 아무것도 실행되지 않습니다.
crontab에서 :
* * * * /usr/bin/chromium-browser_starter
그런 다음 /usr/bin/chromium-browser_starter
:
#!/bin/sh
# chromium-browser_starter
#
# Schedules /usr/bin/chromium-browser to run every 15 seconds for a minute.
# Intended to be called every minute through crond(8).
for ((secs=0; secs<46; secs+=15)); do
(sleep $secs; /usr/bin/chromium-browser "$@") &
done
wait
ps aux | grep chrom
1 분 후에 글을 쓰면 크롬 브라우저가 실행되는 것을 볼 수 없습니다.
sleep
.