выполнить как sudo в ткани

У меня есть команда service app start-demo, требующая ввода sudo service app start-demo в командной строке.

Я использовал sudo(service app start-demo) и sudo(sudo service app start-demo), но все равно получаю

Предупреждение: sudo() столкнулся с ошибкой (код возврата 1) при выполнении «sudo service app start-demo»

У меня нет проблем с выполнением этого в командной строке в терминале.

Я не уверен, считается ли SADeprecationWarning: отказом ткани?

Спасибо.


user@box:/var/lib/app$ fab kickstart
You are installing prereqs..........
### Install Prereqs for Populate ###
No hosts found. Please specify (single) host string for connection: localhost
[localhost] Login password: 

### I am starting demo ###
[localhost] sudo: sudo service app start-demo
[localhost] out: Starting demo

Fatal error: sudo() encountered an error (return code 1) while executing 'sudo service app start-demo'

Aborting.
Disconnecting from localhost... done.

код

def pserve():
    print '### I am starting demo ###'
    #with settings(warn_only=True):
    sudo('sudo service app start-demo')
    #sudo('service app start-demo')

любая команда sudo завершится ошибкой.


/etc/sudoers

# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults    env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL) ALL

# Allow members of group sudo to execute any command after they have
# provided their password
# (Note that later entries override this, so you might need to move
# it further down)
%sudo ALL=(ALL) ALL
#
#includedir /etc/sudoers.d

# Members of the admin group may gain root privileges
%admin ALL=(ALL) NOPASSWD:ALL

person user423455    schedule 05.07.2012    source источник
comment
Ваша конфигурация sudo требует ввода пароля на терминале?   -  person sarnold    schedule 06.07.2012
comment
Ты команду в кавычки поставил? Должно быть sudo("service app start-demo").   -  person mayhewr    schedule 06.07.2012
comment
@sarnold Это не так. Когда я делаю sudo на терминале, он не спрашивает. Я побежал как потрясающий, он тоже не спрашивал.   -  person user423455    schedule 06.07.2012
comment
@mayhewr О да. Моя вина. Я делаю. В противном случае он будет жаловаться как синтаксическая ошибка. :))   -  person user423455    schedule 06.07.2012
comment
SADeprecationWarning не должно быть проблемой. Даже если бы это было так, служба все равно запустилась бы (поскольку она точно знает, что это просто предупреждение), но ткань могла бы сообщить об этом как о сбое. Если служба не запускается, проблема должна быть где-то еще. Если у вас все еще есть проблема, опубликуйте более полную трассировку/вывод.   -  person mayhewr    schedule 06.07.2012
comment
@mayhewr Спасибо. Я обновил полный журнал. Это то, что вам нужно? Если нет, пожалуйста, дайте мне знать.   -  person user423455    schedule 06.07.2012
comment
@ user423455: значит, вы настроили все, что хотите запускать в /etc/sudoers как NOPASSWD? Поскольку кешированный пароль, который вы указали в своей собственной оболочке для тестового запуска команды с sudo, может фактически не быть полезным для команды, которую вы пытаетесь запустить здесь.   -  person 0xC0000022L    schedule 06.07.2012
comment
@ 0xC0000022L Привет. Спасибо. Разве fab не должен использовать текущего пользователя в качестве учетной записи sudo и запрашивать доступ? Или это не так? Я верю, что сделал. Чуть позже выложу файл.   -  person user423455    schedule 06.07.2012


Ответы (1)


Это напрямую связано с упоминанием в faq, но также, если команда не возвращает 0 (стандарт unix для всего хорошего), она быстро выйдет из строя, если вы не скажете ей только предупреждать.

person Morgan    schedule 06.07.2012
comment
Спасибо! Это очень хорошая находка :) Теперь... еще одна вещь... фаб не возвращается. Он просто ждет там. Почему это? - person user423455; 06.07.2012
comment
Скорее всего, из-за каких-то неработающих или фоновых вещей, а также упоминается в FAQ - person Morgan; 09.07.2012