Ошибка при использовании child.interact в cronmode

У меня есть «child.interact()» в моем коде, он работает нормально при обычном запуске, но при запуске от имени cronuser я получаю следующую ошибку. Кто-нибудь видел это раньше и знает, как это исправить?

  child = pexpect.spawn('ectool --server=commander.company.com login username', logfile=sys.stdout)
  child.expect('Password:')
  child.sendline('password')
  child.interact()

Ошибка:-

  File "/local/mnt/workspace/username/Automation/test.py", line 1453, in <module>
    temp = prism.searchChangeRequestsForGerritInfo(PLProductLine)
  File "/local/mnt/workspace/username/Automation/test.py", line 1094, in searchChangeRequestsForGerritInfo
    lookaheadreset_link = lookaheadreset_ectool(gerrit_id)                                                
  File "/local/mnt/workspace/username/Automation/test.py", line 74, in lookaheadreset_ectool
    child.interact()
  File "/usr/local/lib/python2.7/dist-packages/pexpect/__init__.py", line 1612, in interact
    mode = tty.tcgetattr(self.STDIN_FILENO)
termios.error: (22, 'Invalid argument')

person user3654069    schedule 06.06.2014    source источник
comment
См.: stackoverflow.com/questions/5496195/   -  person James Mills    schedule 06.06.2014
comment
@JamesMills - это происходит только при запуске от имени cronjob, поэтому я не думаю, что это имеет какое-либо отношение к установке Python.   -  person user3654069    schedule 06.06.2014
comment
Моя единственная другая мысль заключается в том, что я почти уверен, что задания cron не открывают стандартный ввод для вашего подпроцесса.   -  person James Mills    schedule 06.06.2014
comment
@JamesMills - хорошо .. есть другой способ это исправить?   -  person user3654069    schedule 06.06.2014
comment
Я не знаю способа исправить это. AFAIK STDIN просто недоступен для заданий cron. Откуда бы вы прочитали информацию?   -  person James Mills    schedule 06.06.2014
comment
@JamesMills - я обновил приведенный выше код ... в основном, если я не делаю child.intereact (), я не могу войти в систему, а последующие команды не работают? Есть ли замена для child.interact ()?   -  person user3654069    schedule 06.06.2014
comment
Я бы сказал, что вам нужно найти способ указать cron открыть стандартный ввод и, возможно, дать вашему подпроцессу (cron job) действительный tty/pty.   -  person James Mills    schedule 06.06.2014
comment
в моем случае я вызывал interact(), чтобы получить статус выхода (после того, как я узнал, что достиг EOF), но похоже, что вызов close(force = False) также дает действительный статус выхода.   -  person Andre Holzner    schedule 14.01.2015