Obecnie korzystam z kopii zapasowej i należy ją teraz przenieść na odłączalną, taką jak na tmux
lub screen
. Czy można to zrobić, gdy polecenie jest obecnie uruchomione?
Mogę wysłać polecenie w tle, naciskając Ctrl+ Zi przywrócić je, wydając fg
polecenie. ale nie wiem, czy ta sesja może wrócić po wyjściu z terminala.
command-line
shell
gnu-screen
tmux
Jürgen Paul
źródło
źródło
Odpowiedzi:
Działa to przez większość czasu:
Wymagania wstępne: mieć
reptyr
itmux
/ lubscreen
zainstalować; będziesz mógł je znaleźć za pomocąapt-get
lubyum
, w zależności od platformy.Użyj Ctrl+, Zaby zawiesić proces.
Wznów proces w tle za pomocą
bg
Znajdź identyfikator procesu w tle za pomocą
jobs -l
Zobaczysz coś podobnego do tego:
Usuń zadanie z bieżącego rodzica (powłoki) za pomocą
disown yourprocessname
Rozpocznij
tmux
(preferowane) lubscreen
.Ponownie podłącz proces do
tmux
/screen
session z reptyr:Teraz możesz odłączyć multiplekser (domyślnie Ctrl+ B, Dfor
tmux
lub Ctrl+ A, Dforscreen
) i odłączyć SSH, gdy proces będzie kontynuowany wtmux
/screen
.Później, kiedy ponownie połączysz się z SSH, możesz podłączyć się do swojego multipleksera (np
tmux attach
.).źródło
sudo reptyr 1430
wciąż dostaję: „... [-] Nie można otworzyć tty u dziecka. Nie można dołączyć do pid 1430: Odmowa zezwolenia”echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
bg
tym proces powinien działać w tle, więcjobs
powinieneś powiedziećRunning
raczej niżStopped
.reptyr
jest dobry, ale dostałem błąd uprawnieńPotem znalazłem
-L Like '-l', but also redirect the child's stdio to the slave.
co działało jak urok
źródło
-L
, dostałem wiadomość podobną do twojej,Opened a new pty: /dev/pts/6
ale moja zawieszonatop
nie pojawiła się w tmuxie. czego tu brakuje?możesz użyć disown, aby odłączyć zadanie od jego terminala, jeśli to polecenie jest dostępne.
bezpieczniej jest jednak uruchomić go bez użycia narzędzia nohup.
źródło
nohup
? Jak działadisowning
proces?