재부팅할 때마다 1분 동안 스크립트를 실행해야 합니다. crontab에 적용하면 @reboot
스크립트를 실행하기에는 너무 이르습니다. 재부팅 시 정기적으로 실행되는 다른 모든 작업 후에 실행되기를 원합니다. 재부팅 후 이 스크립트를 어떻게 실행합니까?
답변1
스크립트는 시작 후 1분 동안만 실행되도록 되어 있습니까? 아니면 다른 시간에도 사용할 수 있습니까? 전자의 경우 sleep 60
스크립트 시작 부분에 추가하거나 후자의 경우 crontab 파일에 추가할 수 있습니다.
@reboot sleep 60 && my_script.sh
그러나 sr_가 지적했듯이 이 문제에 잘못된 방식으로 접근하고 있을 수 있으며 올바른 init.d 또는 rc.d 스크립트가 더 안정적인 솔루션이 될 것입니다.
답변2
예를 들어 재부팅 후 네트워크를 사용할 수 있을 때 작업을 수행해야 하는 경우 필요한 시간에 실행될 systemd 장치를 작성할 수 있습니다(물론 이는 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
이제 끝났습니다!
답변3
나는 다음과 같이 사용할 것이다 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가 사용하고 있는 초기화에서 이를 수행하는 방법을 확인해야 한다는 것입니다.