Mamy długi proces na zdalnym serwerze, który jest uruchamiany ręcznie od czasu do czasu. Niestety połączenia internetowe giną, jądra paniki i cała masa innych wyzwań może zostać napotkana przez sesję ssh służącą do połączenia i uruchomienia zadania.
Wygląda na to, że ekran jest doskonałym sposobem na to, aby proces nie został przerwany. Jednak poleganie na osobie, która zawsze pamięta o uruchomieniu ekranu, a następnie uruchomieniu skryptu w celu rozpoczęcia procesu, jest problemem, który czeka. Czy istnieje sposób, aby skrypt mógł sprawdzić, czy skrypt jest wywoływany z poziomu ekranu? Jeśli tak, proces będzie kontynuowany, w przeciwnym razie skrypt zakończy działanie z komunikatem instruującym użytkownika, aby najpierw uruchomił ekran.
gnu-screen
Cclark
źródło
źródło
Odpowiedzi:
Istnieje do tego zmienna środowiskowa. Jeśli jest uruchamiany na ekranie,
$TERM
będziescreen
. To takie proste; po prostu zrób to. Na przykład,wyświetli pasek echa na ekranie; foo inaczej.
źródło
screen-256color
jeśli użytkownik skonfigurował obsługę 256 kolorów.Podczas pracy z ekranem, dlaczego nie uruchomić skryptu z „nohup”? Zapewni to również, że będzie nadal działać, jeśli zostaniesz rozłączony.
Domyślnie zapisuje się w pliku, więc możesz użyć innych narzędzi do monitorowania wyników skryptu, jeśli chcesz.
źródło