cron 작업을 한 번만 실행하는 방법은 무엇입니까?


14

나는 그것이 시작되는 순간 영원히 실행되는 직업이 있습니다. 따라서 "crontab -e"파일에 파일을 입력하고 재부팅 할 때마다 저장하거나 한 번만 시작하고 싶습니다.

이것을 달성하는 방법?

답변:


22

나중에 명령을 한 번 실행 하려면 at명령을 사용하십시오 .

시스템 부팅시 명령을 한 번 실행 하려면 올바른 해결책은 다음 중 하나를 사용하는 것입니다.

  • 시스템 RC 스크립트 (/etc/rc.local)
  • @reboot특수 접두사 가있는 crontab (맨 페이지 참조)

후자는 루트가 아닌 사용자를위한 유일한 옵션입니다.


2
@reboot를 언급하면 ​​+1입니다.
Alex Holst

가능한 경우 항상 /etc/rc.local을 사용하는 것이 좋습니다. @reboot는 실제로 시스템 부팅이 아닌 크론 드 시작시 명령을 실행한다고 생각합니다. 미묘하지만 가능한 차이.
MikeyB

crontab 파일에 @reboot "cmd ............."를 입력하고 저장했다고 가정합니다. 이 명령이 지금 시작됩니까? (또는) 재부팅 후에 만 ​​시작됩니까?
Rama Vadakattu

그것을 시도하고 참조하십시오 :) 아마 당신이해야 할 일은 crontab에 넣고 다음을 사용하여 즉시 실행을 예약하는 것입니다.at now
MikeyB

좋은 대답입니다. 나는 항상 잊어 버린다 @reboot.
Bill Weiss

9

at (1)을 사용하여 나중에 어느 시점에서 작업을 실행할 수 있습니다. 그러나 부팅 할 때 무언가를 실행하고 그 자체로 실행 상태를 유지하려면 /etc/init.d/에 항목을 원하십니까? 부팅시 시작할 수 있습니다.


1
rc.local을 사용할 수도 있습니다. /etc/rc.local의 명령은 " 다른 모든 init 스크립트 후에 실행됩니다 . 전체 Sys V 스타일 초기화 작업을 수행하지 않으려면 자체 초기화 항목을 rc.local에 넣을 수 있습니다."
Joe

조 : 좋은 전화.
Bill Weiss

at 명령으로 시작한 프로세스를 중지하는 방법은 무엇입니까? ( "ps command"를 사용하여 프로세스 ID 목록을 본 후 kill process id를 알고 있습니다.이 명령은 "at command"에도 적용됩니다.) 사용자 지정 스크립트를 쉽게 만들 수 있습니까?
Rama Vadakattu

둘 다 그렇습니다. 모든 프로세스는 사용을 중지 할 수 있습니다 kill(사용자 프로세스에 대한 권한이 있다고 가정). init 스크립트를 만드는 것은 정말 쉽습니다. 에서 봐 /etc/init.d/그 후하지 매우 긴 스크립트 및 모델 당신을 위해, 또는 구글 making init scripts (your distribution).
Bill Weiss

1
많은 배포판에는 /etc/init.d/skeleton사용에 맞게 조정할 수 있는 기본 스크립트 ( openSuSE)가 포함되어 있습니다.
MikeyB

3

한 번만 실행되고 죽을 때까지 영원히 실행되는 작업을 "데몬"이라고합니다. 일반적으로 /etc/init.d/의 init 스크립트를 통해 시작됩니다.

어떤 시점에서 작업이 종료되고 일회성 작업으로 간주 될 수있는 경우 at 명령을 살펴볼 수 있습니다. 예를 들어 오늘 밤 10시에 find 명령을 실행하려면 한 번만 실행하십시오.

$ at 10PM
at> find /root > /root/find_results.list
at> <EOT>
job 3 at 2010-02-10 22:00

1

at 명령을 살펴보십시오


시스템이 재부팅되면 어떻게됩니까? "at command"를 다시 입력해야합니까?
Rama Vadakattu

at 명령 항목은 다시 부팅해도 손실되지 않습니다. ibm.com/developerworks/linux/library/l-job-scheduling.html 은 작업 스케줄링에 대한 흥미로운 소개입니다
Dominik

@Rama Vadakattu : "다시 부팅해도 at 명령 항목이 손실되지 않습니다." ... 아직 실행되지 않았습니다. MikeyB의 답변을 참조하십시오 .
추후 공지가있을 때까지 일시 중지되었습니다.

좋아, 나는 이것에 대해 더 많은 연구를 할 것이다.
Rama Vadakattu
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.