Sair / dev / tty depois da mensagem de erro

0

Eu executo essa função bash quando um botão é pressionado, ele chama meu celular, no entanto, quando a chamada termina ou eu rejeito a chamada, ela fica travada em / dev / tty e não retorna ao programa principal

call.sh

#!/bin/bash

printf %s\n 'call sip:[email protected]' | cat - /dev/tty |twinkle -c

Aqui está o programa principal:

while(1):
if lcd.buttonPressed(lcd.SELECT):
   os.system("./call.sh")

Quando o telefone está off-line ou a chamada é rejeitada, ele trava e não retorna ao programa python:

EuteriaentãoquepressionarCTRL+CeCTRL+Zparasair,oquetambémfechaoprogramapython.

É possível retornar ao programa principal após um erro 408 Request timeout ou uma mensagem 468 Busy Here?

EDITAR: A resposta foi mkfifo /tmp/pipe; exec 3<>/tmp/pipe; (trap '' TTIN TTOU; twinkle -c) <&3 & printf '\ncall sip:'[email protected] >&3 graças a @mikeserv

    
por Hamoudy 08.02.2015 / 22:34

1 resposta

1

Se você quiser que faça uma chamada quando apertar o botão, sugiro que seu programa de monitoramento de chaves use a linha de comando do twinkle para fazer isso diretamente:

twinkle -c --immediate --tipo de chamada: [email protected]

Seria muito mais fácil que tudo isso mexesse com ttys, etc.

Ou eu entendi mal sua intenção?

    
por 08.02.2015 / 23:41