Odpowiedzi:
Następujące dzienniki są powiązane z aktualizacjami apt:
/var/log/apt/history.log
/var/log/apt/term.log
/var/log/dpkg.log
Jeśli polecenie było dist-upgrade
, istnieją dodatkowe dzienniki:
/var/log/dist-upgrade
Do Twojej wiadomości, zwykle jest po prostu ponownie uruchomić aktualizację i apt będzie kontynuować od miejsca, w którym zostało przerwane, gdy proces zmarł z powodu rozłączenia. Jednak...
Podkład ekranu GNU:
Podczas ssh'owania na zdalnym serwerze i rozpoczynania długotrwałego procesu na pierwszym planie, najlepszą praktyką jest używanie GNU Screen. Screen zapewnia wirtualny terminal, który kontynuuje działanie nawet w przypadku utraty połączenia ssh.
Zainstaluj ekran:
sudo apt-get install screen
Uruchom ekran:
screen
Po uruchomieniu ekranu pojawi się wiersz polecenia, tak jak w przypadku normalnego terminala. Następnie możesz uruchomić aktualizację z poziomu ekranu wewnętrznego:
sudo apt-get upgrade
Aby zrozumieć, jak to działa, ekran „odłącz”, naciskając Ctrl + a, d . Spowoduje to powrót do terminala nieekranowego. Możesz zobaczyć listę uruchomionych ekranów za pomocą
screen -list
Jeśli masz tylko jeden ekran, możesz go ponownie podłączyć za pomocą:
screen -raAd
(Odłącza ekran w przypadku, gdy jest podłączony gdzie indziej, i ponownie podłącza go do terminalu, na którym obecnie pracujesz).
Zazwyczaj nie można przewijać „normalnie” z poziomu ekranu bez dodatkowej konfiguracji. Aby przewijać w obrębie ekranu, naciśnij Ctrl-Esc, aby przejść do trybu kursora. Następnie możesz przewijać w dół i w górę za pomocą j i k . Naciśnij klawisz Esc ponownie, aby wyjść z trybu kursora.
W sieci dostępnych jest wiele innych zasobów na dodatkowe funkcje ekranu. Jest to nieocenione standardowe narzędzie do administrowania systemem.
Zobacz też:
screen -x
- dołącz do uruchomionego ekranu bez odłączania innych, czyniąc sesję ekranową „multiplayer”.
tail -f
polecenia i oznaczenia , co pozwoli użytkownikowi obserwować postęp w czasie rzeczywistym (lub zobaczyć, że się zawiesił) po „ponownym uruchomieniu” Zaloguj sie." Wiem, że jest stary i zaakceptowany, ale myślę, że do tego zestawu instrukcji należy dodać ogon, ponieważ bez tego szczegółu odpowiedź poniżej @TheAnonymousBear jest bardziej bezpośrednia i konkretna. @doublerebel
sudo dpkg --configure -a
kontynuuje apt apt, kiedy to jeszcze wydawało.
Oprócz odpowiedzi doublerebel zauważyłem dziś alternatywę.
Poszłam spać po rozpoczęciu aktualizacji SSH. Głupio zapomniałem go uruchomić screen
i z dnia na dzień straciłem sesję SSH.
Właśnie miałem rozpocząć badania, retty
gdy zauważyłem, że root
rozpoczęła się screen
sesja.
me@GAMMA:~$ ps aux | grep -E 'release|upgrade|apt'
root 6208 0.0 0.0 29140 1628 ? Ss 01:57 0:05 SCREEN -e \0\0 -L -c screenrc -S ubuntu-release-upgrade-screen-window /tmp/ubuntu-release-upgrader-1h6_g4/raring --mode=server --frontend=DistUpgradeViewText
root 6209 0.2 5.6 287428 93144 pts/2 Ss+ 01:57 3:13 /usr/bin/python /tmp/ubuntu-release-upgrader-1h6_g4/raring --mode=server --frontend=DistUpgradeViewText
root 6239 0.0 0.0 50052 1184 ? Ss 01:58 0:00 /usr/sbin/sshd -o PidFile=/var/run/release-upgrader-sshd.pid -p 1022
root 7306 0.0 4.6 287432 77284 pts/2 S+ 02:43 0:08 /usr/bin/python /tmp/ubuntu-release-upgrader-1h6_g4/raring --mode=server --frontend=DistUpgradeViewText
me 26829 0.0 0.0 9440 956 pts/5 S+ 22:18 0:00 grep --color=auto -E release|upgrade|apt
Więc wymieniłem root
ekrany i dołączyłem do niego:
me@GAMMA:~$ sudo screen -list
There is a screen on:
6208.ubuntu-release-upgrade-screen-window (12/11/2013 01:57:58 AM) (Detached)
1 Socket in /var/run/screen/S-root.
me@GAMMA:~$ sudo screen -x -r
I Bam! Wróciłem do gry.
do-release-upgrade
polecenie jest specyficzne dla Ubuntu? Nigdy nie musiałem sprawdzać Debiana, którego używam wyłącznie, ponieważ zawsze uruchamiam go ręcznie, odłączam, a potem wracam. I, oczywiście, używamy sudo apt dist-upgrade
po zmianie /etc/apt/sources.list
.
Aby wyświetlić dane wyjściowe z apt
zadania w tle w czasie rzeczywistym , użyj:
sudo tail -f /var/log/apt/term.log
tail
) po tym, co nazwali „ponownym logowaniem”.
Miałem dokładnie ten sam problem, straciłem połączenie i proces dpkg czekał na dane wejściowe.
Może następnym razem spróbuj: sudo dpkg --configure -a
"dpkg: error: dpkg frontend is locked by another process"
/var/dpkg/lock
jeśli nadal działa. I niezależnie od tego, nie odpowiada na pytanie „jak sprawdzić status aktualizacji”, a zamiast tego będzie działać tylko wtedy, gdy aktualizacja ulegnie awarii (i tylko wtedy, gdy blokada nie będzie aktywna). Nie poleciłbym nikomu takiego podejścia. Z szacunkiem, oemb1905