Я пытаюсь следующую команду:не могу сделать "Sudo су - Postgres" с subprocess.call
subprocess.call(['sudo', 'su - postgres'], shell=True)
или
subprocess.call(['sudo', 'su', '-', 'postgres'], shell=True)
в python2.7 (либо ipython
вручную писать строку, или python myfile.py
является линия, как часть кода), а также получить информацию об использовании Sudo:
usage: sudo [-D level] -h | -K | -k | -V
usage: sudo -v [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-u user
name|#uid]
usage: sudo -l[l] [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-U user
name] [-u user name|#uid] [-g groupname|#gid] [command]
usage: sudo [-AbEHknPS] [-C fd] [-D level] [-g groupname|#gid] [-p prompt] [-u
user name|#uid] [-g groupname|#gid] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-C fd] [-D level] [-g groupname|#gid] [-p prompt] [-u
user name|#uid] file ...
Я могу запустить команду в оболочке без каких-либо проблем. Оба раза это одна и та же оболочка.
Q: Что я делаю неправильно?
Не помещает ли список аргументов последовательно? – Zizouz212
Подождите. Есть много других способов подключения к postgres. Почему вы используете это? BTW, чтобы решить вашу проблему, вы можете выполнить 'subprocess.call (['sudo su - postgres'], shell = True)' –