@reboot 후 Crontab 작업 시작 +1 분


42

+1 분마다 재부팅 할 때마다 스크립트를 실행해야합니다. 기록을 세웠지 @reboot만 스크립트가 너무 이릅니다. 재부팅 후 언젠가 실행하는 방법?


2
너무 일찍 ? 아마도 init 스크립트가 더 적합 할 것입니다 (예를 들어, 이 스크립트는 네트워킹을 먼저 설정해야합니다 ).
sr_

내 스크립트는 다른 모든 것, 마지막 단어에서 마지막으로 실행되어야합니다.
Yurij73

모든 작업 후에 작업을 실행해야하고 모든 개념이 매우 다양하기 때문에 (새로운 autostart @ reboot 응용 프로그램을 추가하는 것은 그리 드물지 않습니다) 작업을 rc 스크립트에 배치하는 것은 귀하의 책임이라고 생각합니다 그 서버를 당신의 목적으로 사용하십시오. 작업을 /etc/rc.local에 지정된 작업의 맨 아래에 두는 것이 일반적으로 원하는 것이지만 시스템의 시작 구성에 따라 항상 그렇지는 않을 수 있습니다. 따라서 테스트하여 효과가 있는지 확인하십시오.
MelBurslan

Upstart의 경우처럼 들립니까?
nafg

답변:


64

스크립트는 부팅 후 1 분만 실행되도록 설계 되었습니까? 아니면 다른 시간에도 사용할 수 있습니까? 전자의 경우 sleep 60스크립트의 시작 부분에 추가 하거나 후자의 경우 crontab 파일에 추가 할 수 있습니다.

@reboot sleep 60 && my_script.sh

sr_에 의해 지적 되었 듯이, 아마도 이것을 잘못된 방식으로 처리하고 있으며 적절한 init.d 또는 rc.d 스크립트가 더 강력한 솔루션 일 것입니다.


1
또는 명령 행 옵션을 사용하여 지연을 조정하십시오 (예 : 스크립트 내부로 script -s X변환 됨 sleep X).
peterph

이것을 /etc/init.d/의 파일 taskrunner에 적용 할 수 있습니까?
Andres Angel

@AndresAngel-죄송합니다. 모르겠습니다. 나는 taskrunner이 문제 가없는 FreeBSD를 사용한다/etc/init.d
D_Bye

내 rhel7 수면에서 전혀 작동하지 않습니다, 그것은 영원히 자고 & 다시 돌아 오지 않습니다.
Inder R Singh

16

예를 들어 네트워크를 사용할 수있을 때 재부팅 후 무언가를 실행해야하는 경우 필요한 시간에 실행될 시스템 장치를 작성할 수 있습니다 (물론 systemd가있는 시스템에서만 작동 함).

이렇게하려면 /etc/systemd/system/my_script.service다음 내용으로 파일 을 작성하십시오 .

[Unit]
Description=My script that requires network
After=network.target

[Service]
Type=oneshot
ExecStart=/full/path/to/my_script.sh

[Install]
WantedBy=multi-user.target

그런 다음 다음을 실행하십시오.

sudo systemctl daemon-reload
sudo systemctl enable my_script

끝났습니다!


11

사용 at합니다. 에서처럼 :

@reboot echo /root/bin/do_the_stuff | at now + 2 minutes
# at assigns it an execution time truncated to whole minutes,
# so this means it will execute in 1--2 minutes.

... 추가 언급 된주의 사항을 통해 실제로 원하는 것이 다른 모든 후에 실행하는 경우 OS가 사용하는 초기화에서 수행 방법을 확인해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.