Команды Subversion не запускаются Ubuntu rc.local

Вот мой rc.local для автоматического масштабирования экземпляра amazon ec2 на основе ubuntu: (Обратите внимание, что имена пользователей, домены и пути были изменены в целях безопасности)

logger "Begin rc.local startup script:"

logger "svn checkout"
sudo -u nonRootUser /usr/bin/svn co svn+ssh://user@svnserver.com/path/to/repo /var/www/html | logger

logger "chown writeable folder"
chown www-data /var/www/html/writeableFolder

logger "restart apache"
/etc/init.d/apache2 restart | logger

exit 0

А вот вывод команды sudo tail -n 40 /var/log/syslog

Mar 10 22:05:20 ubuntu logger: Begin rc.local startup script:
Mar 10 22:05:20 ubuntu logger: svn checkout
Mar 10 22:05:20 ubuntu logger: chown writeable folder

Конечно, не получается перезапустить apache2, потому что это ошибка на chown. Однако я обнаружил, что, если я заранее сделаю проверку и установлю для команды rc.local svn значение svn update, он по-прежнему не запускает команду svn, но выводит перезапуск apache2 успешно.

Эти те же самые команды svn работают отлично, когда я запускаю их вручную, хотя странно, что в rc.local они не выдают никаких данных в журнал, а перезапуск apache2 делает.

Я также попытался запустить обновление svn co и svn как с sudo -u, так и без.

Как мне запустить команду svn? Либо полная проверка или обновление. На данный момент либо будет лучше, чем ничего!

2 ответа

Решение

Я не знаю почему sudo вызывает проблемы здесь, но вы также можете использовать su, который будет работать так:

su nonRootUser -c "/usr/bin/svn co svn+ssh://user@svnserver.com/path/to/repo /var/www/html | logger"

Попробуйте использовать полный путь к chown.

/bin/chown
Другие вопросы по тегам