Fabric и Sudo от имени другого пользователя

Используя Fabric для запуска сервера, все работает отлично, за исключением моей попытки запустить postgresql.

sudo("/usr/lib/postgresql/9.1/bin/pg_ctl -D /mnt/ebs/postgresql/data -l /mnt/ebs/logfile start", user='postgres')

Он выводит «запуск сервера», но на самом деле он не запускается. В журнале postgresql ничего не отображается.

Если я захожу по ssh и выполняю ту же команду, что и пользователь postgres, все работает. Если я зайду по ssh и запущу следующее, это тоже сработает.

 sudo su postgres -c '/usr/lib/postgresql/9.1/bin/pg_ctl -D /mnt/ebs/postgresql/data -l /mnt/ebs/logfile start

Чего я не понимаю в том, как ткань воспринимает пользователей? Или как работают пользователи Linux?


person Zach    schedule 13.04.2012    source источник


Ответы (1)


Вот раздел в документы для вашего варианта использования. Это связано не с sudo, а с настройками pty вызовов по умолчанию. Больше информации в FAQ.

person Morgan    schedule 13.04.2012
comment
Ух ты. Тут же первый FAQ. Спасибо. - person Zach; 13.04.2012