크론탭에 관해 질문이 있습니다. 매분 실행되도록 예약하려는 checker.sh라는 스크립트가 있습니다.
* * * * * sh /home/pi/checker.sh
여기에 스크립트가 있습니다.
이 스크립트의 개념은 다음에서 비롯됩니다. Linux 스크립트는 프로세스가 실행 중인지 확인하고 결과에 대해 조치를 취합니다.
문제는 checker.sh
Python 스크립트를 실행할 수 있는지 확인하기 위해 Python 프로세스를 종료할 때마다 작동하지 않는다는 것입니다. 문제가 어디에 있는지 모르겠습니다. 스크립트 자체에서 Python의 경로 이름을 /usr/bin/python으로 변경하려고 시도했지만 checker.sh
여전히 작동하지 않습니다.
누군가가 이 문제를 해결할 수 있기를 바랍니다.
답변1
crontab에서 정규화된 경로를 사용하세요.
/bin/sh /home/pi/checker.sh
답변2
쉘 스크립트에 bash를 지정한 다음 crontab에서 sh를 사용하여 스크립트 호출을 시도합니다. Shebang에서 쉘을 지정했기 때문에 실제로 crontab에서 쉘을 지정할 필요가 없으므로 다음과 같이 하면 정상적으로 작동합니다.
* * * * * /home/pi/checker.sh
답변3
cd 및 전체 경로를 사용하여 쉘 스크립트 자체 내의 디렉토리로 명시적으로 탐색해 보십시오. 저도 비슷한 문제가 있었는데 이렇게 해서 해결했습니다. 예를 들어, 스크립트 상단에 다음을 #!/bin/bash
입력하세요.
cd /home/pi/Some_Directory`
# the rest of your script
답변4
이것은 비교적 오래된 질문인 것 같지만 제목에 문제가 있다고 생각합니다(셰르본). 스크립트에는 다음 헤더가 있습니다.
#! /bin/bash
그러나 다음과 같아야 합니다.
#!/bin/bash
즉, #!
와 사이에는 공백이 없습니다 /bin/bash
. 이전에 이런 상황이 발생했는데 공백을 제거하여 해결되었습니다.