Django Apache - запускать скрипт как Root - PullRequest
3 голосов
/ 12 августа 2011

Мой проект django вызывает файл python в назначенное время, используя планировщик at.Это выполняется в моем models.py

command = 'echo "python /path/to/script.py params" | /usr/bin/at -t [time] &> path/to/at.log'
status = os.system(command)

Где [время] - это время по расписанию.Он отлично работает, когда я запускаю его на сервере Django Dev (я обычно запускаю с правами root, но он также работает и с другими пользователями) Но когда я развернул свое приложение на Apache с помощью mod_wsgi, он не работает.в журналах видно, что задание было запланировано, но оно не выполняется.Я перепробовал все, от смены владельца на www-данные, разрешения, превратив его в исполняемый файл для всех пользователей, до setuid для root (Огромная проблема безопасности) Последнее, что я хочу сделать, это запустить apache от имени пользователя root.

1 Ответ

2 голосов
/ 12 августа 2011

Используйте cron или сельдерей для запланированных задач. Если вам нужно запустить что-то как root, имеет смысл переписать ваш скрипт как простой демон и запустить его как root, вы можете довольно легко передавать ему команды с помощью zeromq .

...