sudo가 포함된 Crontab이 Debian BeagleBone Black에서 작동하지 않습니다.

sudo가 포함된 Crontab이 Debian BeagleBone Black에서 작동하지 않습니다.

내 Beaglebone Black 장치에서 부팅 시 여기에서 공유되는 Python 코드를 실행하고 싶습니다.https://github.com/acseckin/hmrid. Python 코드에는 슈퍼유저 권한이 필요합니다. 장치에서 사용하고 있는 Debian 버전에는 "Debian 8.7 2017-03-19 4GB SD IOT" 이미지가 설치되어 있습니다. 코드가 터미널에서 제대로 실행됩니다.

sudo 파이썬 /home/debian/hmrid/runhmrid.py

다음 줄을 추가하면 Debian 사용자 및 루트 crontab이 작동하지 않습니다.

@reboot sudo python /home/debian/hmrid/runhmrid.py

하지만 데비안 사용자를 위해 crontab을 추가하면 슈퍼유저가 필요하지 않은 다른 코드도 완벽하게 작동합니다.

@reboot python /home/debian/hmrid/runNotSuperUser.py

답변1

sudo crontab -eas를 사용하여 작업을 루트의 crontab에 넣습니다.

@reboot /full/path/to/python /home/debian/hmrid/runhmrid.py

작업이 실행됩니다.아니요평소 환경. 이는 스크립트가 Python의 작동 방식에 영향을 미칠 수 있는 환경 변수에 어떤 식으로든 의존하는 경우 스크립트가 제대로 작동하려면 다른 곳에서 설정해야 할 수도 있음을 의미합니다.

이 명령의 출력을 별도의 파일에 기록하려면 다음을 사용할 수 있습니다.

@reboot /full/path/to/python /home/debian/hmrid/runhmrid.py >/tmp/runhmrid.log 2>&1

/tmp/runhmrid.log오류 메시지를 포함하여 크론 작업의 모든 출력을 파일에 기록합니다 .

일련의 문을 사용하여 환경을 설정하고 exportPython 스크립트를 시작하는 셸 스크립트 래퍼를 만들 수도 있습니다. 그럼 전화해도 돼저것크론의 스크립트.

관련 정보