Команды 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://[email protected]/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, она все равно не запустит команду svn, но успешно перезапустит apache2.

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

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

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


person talentedmrjones    schedule 10.03.2010    source источник


Ответы (2)


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

su nonRootUser -c "/usr/bin/svn co svn+ssh://[email protected]/path/to/repo /var/www/html | logger"
person Powerlord    schedule 11.03.2010
comment
Это сделало это! Спасибо, что остановили мое выпадение волос! :) - person talentedmrjones; 11.03.2010
comment
Примечание. Я думаю, что причина, по которой sudo не работает, заключается в том, что ему нужен пароль (нет запроса TTY). - person sandstrom; 20.05.2011

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

/bin/chown
person flaxeater    schedule 11.03.2010
comment
На самом деле не поэтому chown не работает. chown может изменить только то, что есть, и, поскольку svn не выполнял проверку, файлы, которые я пытаюсь chown, не существуют. - person talentedmrjones; 11.03.2010