우분투가 시작될 때 자동으로 스크립트 쉘을 실행하시겠습니까? [폐쇄]

우분투가 시작될 때 자동으로 스크립트 쉘을 실행하시겠습니까? [폐쇄]

나는 이것에 대해 많은 연구를 수행했으며 이를 수행하는 방법에 대한 많은 접근 방식을 보았습니다. 그러나 이들 중 어느 것도 나에게 효과가 없는 것 같습니다. 예를 들어, 저는 다음과 같은 일을 했습니다.

~/.config/upstart/text.config

위에서 언급한 디렉터리에 .config 파일을 만들고 다음 명령을 작성했습니다(아래 testScript.sh는 내가 실행하려는 스크립트입니다).

start on startup 
task 
exec /path/to/testScript.sh

제가 시도한 또 다른 접근 방식은 rc.local 파일에 다음과 같은 내용을 작성하는 것이었습니다.

sudo -H /etc/init.d/testScript.sh start

init.d에 testScript.sh를 넣었습니다. 어느 접근 방식도 나에게 적합하지 않습니다. 시스템에서 어떤 오류나 메모도 제공하지 않았습니다. 어딘가에서 실수를 하고 있는 걸까요, 아니면 다른 방법이 있는 걸까요? 이렇게 하면 시스템이 시작될 때 내 스크립트가 자동으로 실행됩니다.

답변1

왜 일반을 사용하지 않습니까 cron? 슈퍼유저로 편집 /etc/crontab하고 줄을 추가하세요

@reboot     root    /path/to/testScript.sh

이렇게 하면 더 이상 문제 없이 문제가 해결됩니다. ( man 5 crontab더 많은 cron옵션은 참고자료를 참조하세요)

답변2

먼저 몇 가지 점검을 해보겠습니다.

1: 스크립트가 운영 체제에서 제대로 실행되고 있는지 확인합니다(즉, 오류가 발생하지 않거나 어딘가에 멈춰 있지 않음을 의미).

2: 예를 들어 시스템 시작 스크립트를 만들어야 합니다. testScript.service를 작성하여 /etc/systemd/system/ 디렉토리에 배치하십시오. 다음 시스템 시작 스크립트의 예로 스크립트를 추가할 수 있습니다.

[Unit]
After=mysql.service

[Service]
ExecStart=/usr/local/bin/testScript.sh

[Install]
WantedBy=default.target

/usr시스템을 다시 시작하기 전에 스크립트를 실행 가능하게 만들어야 하는 경로 에 스크립트를 복사합니다 .

cp /path/to/testScript.sh /usr/local/bin/testScript.sh
chmod 744 /usr/local/bin/testScript.sh

3: 그런 다음 systemd 서비스 장치를 설치하고 부팅 시 실행되도록 활성화합니다.

chmod 664 /etc/systemd/system/testScript.service
systemctl daemon-reload
systemctl enable testScript.service
Created symlink from /etc/systemd/system/default.target.wants/testScript-sp

잘 진행되기를 바랍니다. 시스템에서 테스트해 보았는데 잘 작동합니다. 여전히 그것을 크론드에 넣고 행을 추가할 수 있는 옵션이 있습니다 @reboot.

관련 정보