Wyjdź / dev / tty po komunikacie o błędzie


0

Uruchamiam tę funkcję bash po naciśnięciu przycisku, wywołuje mój telefon komórkowy, jednak gdy połączenie kończy się lub odrzucam połączenie, zawiesza się w / dev / tty i nie wraca do programu głównego

call.sh

#!/bin/bash

printf %s\\n 'call sip:in06khattab@ekiga.net' | cat - /dev/tty |twinkle -c

Oto główny program:

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

Gdy telefon jest w trybie offline lub połączenie jest odrzucane, zawiesza się i nie wraca do programu python: wprowadź opis zdjęcia tutaj

Musiałbym wtedy nacisnąć CTRL + C i CTRL + Z, aby wyjść, co również zamyka program python.

wprowadź opis zdjęcia tutaj

Czy można wrócić do programu głównego po błędzie przekroczenia limitu czasu żądania 408 lub komunikacie 468 Zajęty tutaj?

wprowadź opis zdjęcia tutaj

EDYCJA: Odpowiedź była mkfifo /tmp/pipe; exec 3<>/tmp/pipe; (trap '' TTIN TTOU; twinkle -c) <&3 & printf '\ncall sip:'in06khattab@ekiga.net >&3dzięki @mikeserv


Prawdopodobnie chcesz wypróbować CTRL-D na początku linii. Mimo to mówiłem, że to hack.
mikeserv

Jak by to działało, gdyby trzeba było sprawdzić, czy wystąpił błąd przekroczenia limitu czasu żądania 408 lub komunikat 468 Zajęty tutaj. CTRL + D daje to samo, co CTRL + C
Hamoudy

To mógłby być bardziej hack, choć - można wstawić headlub coś pomiędzy cata twinklei dodać /proc/self/statdo listy cat„s plików, takich jak cat /proc/self/stat - /dev/tty- że napisze kilka informacji o catprocesie, który można uchwycić i wykorzystać do go zamknąć później - pierwsze kilka bajtów to pid.
mikeserv

To twój program python, stary. Musisz zignorować sygnał.
mikeserv

Próbowałem / proc / self / stat i to właśnie dostałem prntscr.com/62r93w
Hamoudy

Odpowiedzi:


1

Jeśli chcesz, aby Twinkle nawiązało połączenie po naciśnięciu przycisku, sugerowałbym, aby Twój program monitorujący klawisze używał wiersza poleceń twinkle do bezpośredniego działania:

twinkle -c --immediate --call łyk: in06khattab@ekiga.net

Byłoby znacznie łatwiej, gdyby to wszystko bawiło się tty, itp.

Czy też źle zrozumiałem twój zamiar?


to tylko przycisk gpio, który zaprogramowałem do wykonywania innych funkcji, takich jak wysyłanie wiadomości e-mail.
Hamoudy
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.