2016-10-27 2 views
0

현재 프로젝트에서 일하고 있는데 스케줄링을 위해 django-kronos를 사용하고 있습니다. 사용자가 작업을 예약 할 때 스크립트를 실행하고 스크립트의 끝을해야합니다. 실행모든 권한을 가진 파이썬에서 명령을 실행하는 방법

python manage.py installtasks

이것은 crontab에 작업을 삽입하는 데 도움이됩니다. 난 내 장고 응용 프로그램과 통합 할 때 내가 터미널에서 실행하지만 때

스크립트가 잘 작동, 내가 정말 궁금 알고

IOError: Read crontab nobody: You (nobody) are not allowed to use this program (/usr/bin/crontab)

어느 대해이 문제를 일으키는 오류를 던지고?

내가 놓친 것이 있습니까?

+1

오류 메시지는 매우 명백합니다. 스크립트는 crontab 명령을 사용할 수있는 권한이없는 user * nobody *에 의해 실행되었습니다. 적절한 사용 권한이있는 사용자가 스크립트를 실행하도록해야합니다. 하지만 장고 크로노스에 대해서는 잘 모르기 때문에 이것을 어떻게 할 수 있는지 알려줄 수는 없습니다. – Tryph

+0

'chmod' 또는'chown' 스크립트를 실행하고 싶습니다. – FeedTheWeb

+0

예 chmod 및 chown 일을 .. 심지어 내가 스크립트 (여전히 755)에 동일한 오류를 던지고 모든 권한을 주었다. 하지만 내가 수동으로 스크립트를 실행하면 완벽하게 실행 중입니다 ... 난 어디 혼란스러워 몰라 : ( – user458766

답변

0

스크립트에서 setuid 플래그를 설정하면 (chmod u+s) 스크립트가 별도의 프로세스로 실행되는 경우 스크립트 파일의 소유자 UID로 실행됩니다. 그런 다음 실행 권한이있는 사용자를 확인하거나 실행중인 사용자의 인증 또는 검사를 수행하는 다른 사용자와 마찬가지로 해당 사용자가 동일한 지 확인해야합니다.

이것은 많은 해결 방법이며 앱에서 더 나은 기능을 사용할 수있는 경우에는 권장되지 않습니다.

From what I can see, django-kronos 로직은 웹 코드가 아닌 manage.py에서 실행되어야합니다.

관련 문제