Projekt shell - usterka, ustawienia terminala

Projekt shell - usterka, ustawienia terminala

by Michał Syposz -
Number of replies: 3

Startując niektóre procesy w BG, następnie wywołując fg. Po powrocie z procesu terminal nie wyświetla wpisanych przez nas znaków oprócz znaku zachęty.

odtworzenie: 

vim command.c &
fg
man man&
fg

Po powrocie do zwykłej powłoki dzieją się dziwne rzeczy (np wysyłany jest ^M zamiast enter), można to naprawić resetując terminal lub wpisując (przynajmniej w moim wypadku)

stty sane

 

 

In reply to Michał Syposz

Odp: Projekt shell - usterka, ustawienia terminala

by Krystian Bacławski -

Udało mi się odtworzyć usterkę. Potrzebuję się dłużej zastanowić co z tym zrobić.

Wygląda na to, że należałoby w odpowiednim momencie zapisać i odtworzyć ustawienia terminala. Architektura powłoki na chwilę obecną nie przewiduje takiego wariantu użycia.

In reply to Michał Syposz

Odp: Projekt shell - usterka, ustawienia terminala

by Krystian Bacławski -

Poprawiłem usterkę. Niestety wymagało to lekkiej modyfikacji struktury job i wprowadzenia nowych procedur Tcsetattr i Tcgetattr. Kod źródłowy i plik binarny są już dostępne na stronie przedmiotu.

In reply to Krystian Bacławski

Odp: Projekt shell - usterka, ustawienia terminala

by Konrad Kasprzyk -

Po wyjściu z shella, w terminalu nie są wyświetlane znaki, gdy jakieś zadanie zmieni domyślne atrybuty terminala. Można to odtworzyć wpisując : 

watch ls -l &
quit

Łatwo to naprawić. Wystarczy w shutdownjobs przywrócić domyślne atrybuty terminala przed wyjściem z shella.