Como resolvo o problema tty?

2

Estou desenvolvendo o projeto usando o script python no Ubuntu 10.04. No meu projeto, eu preciso reiniciar o sistema automaticamente em um determinado período de tempo. Então, eu escrevi o comando abaixo no meu script python.

passwd = "my system password"
os.system('echo %(passwd)s | sudo reboot -f' %locals())

Ele estava funcionando bem, mas hoje, quando executo meu script, ele gera o erro abaixo.

sudo no tty present and no askpass program specified
Como resolver este problema.Eu preciso reiniciar meu sistema através de script python.Se você sabe, deixe-me, sua resposta é muito útil para mim.     
por Viswa 22.03.2013 / 11:59

2 respostas

2

Você pode reiniciar seu computador através do dbus, sem necessidade de senha.

(Extraído de uma resposta anterior )

#!/usr/bin/env python

import dbus

def main():
    answer = raw_input("Do you really want to shutdown your computer? (Y/n): ")
    if answer in ('y', 'Y', ''):
        bus = dbus.SystemBus()
        bus_object = bus.get_object("org.freedesktop.Hal", "/org/freedesktop/Hal/devices/computer")
        bus_object.Shutdown(dbus_interface="org.freedesktop.Hal.Device.SystemPowerManagement")

if __name__ == "__main__":
    main()
    
por Timo 22.03.2013 / 13:19
0

Encontrei informações muito interessantes que podem ajudar no seu problema.

sudo will only run a program as a different user if one of these 3 conditions has been met (as far as passwords are concerned):

  1. the NOPASSWD option is specified
  2. the user entered the correct target password
  3. the user entered the correct source password

Since options 2 and 3 require a TTY (sudo won't read from a pipe) it won't run if it can't find one. Check your script if at any point you're running a script remotely using ssh, as it's possible that it won't allocate a TTY for a non-interactive remote command.

Fonte: Publicação # 2 (por pludi ) em sudo: no tty presente e nenhum programa askpass especificado (por linuxgeek )

Para mais informações sobre essa solução, veja a discussão no fórum.

    
por Francisco José Trigo Martínez 22.03.2013 / 13:00

Tags