Może to zabrzmieć jak sprzeczność, ale ostatnio musiałem używać trybu pojedynczego użytkownika (aka tryb konserwacji) przez pewien czas (dni!), Próbując odbudować uszkodzoną macierz RAID.
Robiąc to, zauważyłem, że chcę użyć drugiej powłoki do takich celów, jak sprawdzanie / edytowanie ustawień w różnych plikach konfiguracyjnych lub przeglądanie logów systemowych, gdy główna (i jedyna) konsola jest zajęta i wykonuje proces odzyskiwania.
Jakie byłoby zalecane polecenie uruchomienia drugiej powłoki na innym tty?
Oczywiście jedną z metod może być użycie screen
w tty1, ale nie jest to łatwe do przełączania sesji z Alt-F1, Alt-F2 itp.
screen
jest tak proste. Ctrl AP nie wydaje się dużo trudniejszy niż Alt F1 ...screen
itmux
do zarządzania oknami TUI nie zawsze załatwiają sprawę. Czasami potrzebujesz rzeczywistegottyX
urządzenia, a niepts
.Odpowiedzi:
Jest to komenda zaprojektowany specjalnie dla tej sytuacji:
openvt
. Po prostu uruchomopenvt
ze swojej powłoki na tty1, a znajdziesz powłokę działającą na pierwszym tty, która nie miała już na sobie czegoś (prawdopodobnie tty2). Istnieje kilka opcji, które mogą ci się przydać; zobacz stronę manuala openvt.Ponieważ nie jest to logowanie zarządzane przez getty, po wyjściu z nowej powłoki nie pojawi się monit o zalogowanie się. Tty po prostu zginie, ponieważ nie będą działały na nim żadne procesy, ale nadal będziesz mógł przełączać się w przód i w tył (Alt-F1 Alt-F2) i zobaczyć, co było na ekranie, gdy opuściłeś powłokę. Do
deallocvt
niszczy dowodzenia ttys, które są w tym zombie podobny stan, wracając do oryginału „Alt-F2 nic nie robi” stan.Polecenia te pierwotnie były nazywane
open
adisalloc
, ale w końcu ktoś postanowił je zmienić, ponieważ były zbyt ogólne i disallocate uznano za „ani słowa”.W dawnych czasach sterownik klawiatury i init był konfigurowany tak, aby Alt + Up działał
open
, więc działał jako skrót klawiszowy do odradzania powłoki na nowej konsoli. W dalszym ciągu możesz znaleźć resztkę tej starej konfiguracji, skomentowaną w twoim/etc/inittab
. (Jeśli nie używasz jakiegoś fantazyjnego nowego init, który nie mainittab
.)Jest to podobne pytanie tutaj
źródło
openvt
. +1.openvt
okazało się bardzo przydatne. Dzięki za wprowadzenie nowego polecenia do mojego ogłoszenia.Możesz odrodzić kolejny
getty
na dowolne tty. Uruchom system w trybie pojedynczego użytkownika, a następnie uruchomgetty
tty2:Możesz teraz Alt+ F2przejść do nowego tty. W razie potrzeby powtórz dla dodatkowych tty. Prawdopodobnie możesz zrobić coś czystszego i po prostu skonfigurować,
/etc/inittab
aby automatycznie obsługiwać to w trybie pojedynczego użytkownika.źródło
init
, nie zostanie ponownie uruchomiona, jeśli umrze./etc/inittab
a/etc/rc1.d/S??single
przynajmniej.Prawdopodobnie możesz obejść się bez dodatkowej instancji powłoki, korzystając
JOB CONTROL
z bieżącej powłoki. Jest to udokumentowane na stronie podręcznika użytkownikabash(1)
.Możesz po prostu zawiesić zadanie domyślnie przy użyciu sekwencji Ctrl+ Z, chociaż można go skonfigurować w terminalu w inny sposób, sprawdź dane wyjściowe
stty -a
:Możesz sprawdzić swoje prace, wydając
jobs
:Przenieś jeden z nich na pierwszy plan:
Lub wznów to w tle:
Ta metoda nie ma wielu zalet
screen
lubtmux
, ale może być równie przydatna w niektórych sytuacjach.źródło
ddrescue
nie chcę przerywać i wznawiać go, nawet jeśli jest to skonfigurowane.csh
,tcsh
lubzsh
, na przykład), więc wspomnieć jego manpage byłyby niedokładne w tej sprawie. Po drugie, nie odpowiada to na zadane pytanie.Rozważ użycie terminalowych multiplekserów, takich jak tmux lub screen.
Dowiedz się więcej o tmux tutaj: https://github.com/tmux/tmux/wiki
źródło
screen
i czułem, że inne multipleksery są jeszcze bardziej przesadne. Potrzebuję tylko prostej drugiej konsoli.screen
twoje pytanie. Było późno.