Wyświetl bieżący proces

24

Czasami zapominam uruchomić program w ramach sesji ekranowej i nie mogę go zatrzymać w środku, i wiem, że zajmie to dużo czasu.

Czy istnieje sposób na sprawdzenie trwającego procesu bez jego ponownego uruchamiania?

LiraNuna
źródło

Odpowiedzi:

12

Znalazłem tę odpowiedź na błąd serwera od Earl :

Jednak w przypadku rzeczywistego problemu możesz spróbować jeszcze raz: po uruchomieniu pracy z terminala zrób to w tle, pisząc ctrl- za następnie bg.
Po tym, odłącz od niego pracy w macierzystej Shell - w bash: disown -h %<jobid>. Następnie możesz bezpiecznie zamknąć terminal, a zadanie będzie kontynuowane.

I to z tego samego pytania Roba Wellsa :

$ screen -S my_process
$ retty $(pgrep my_process)
/redraw

królikarnia
źródło
Czy jest jakiś sposób, aby ponownie przenieść pracę na pierwszy plan? „screen”, a następnie „fg 1” nie działa dla mnie
Putnik
@Putnik - czy wykonałeś inne czynności zgodnie z opisem?
warren
7

Znaleziono duplikat w ServerFault .

Innym rozwiązaniem, którego nie znaleziono w tym poście, jest użycie retty po rozpoczęciu sesji ekranowej.

LiraNuna
źródło
5
Usunąłem swoją odpowiedź; możesz (i powinieneś) zaakceptować własną odpowiedź po 2 dniach. Podaj tutaj odpowiednie części, ponieważ „duplikaty” z różnych witryn naprawdę nie są duplikatami z powodu różnych odbiorców.
Jeff Atwood
4
Ale nie zacytowałeś odpowiednich części, zgodnie z sugestią Jeffa. =)
David mówi, że przywróć Monikę
5

Spójrz na reptyr , który właśnie to robi. Strona github zawiera wszystkie informacje.

reptyr - narzędzie do „ponownego wpisywania”

programy.

reptyr to narzędzie do pobierania istniejącego programu i dołączania go do nowego terminala. Rozpoczął długotrwały proces nad ssh, ale musisz odejść i nie chcesz go przerywać? Po prostu uruchom ekran, użyj reptyr, aby go złapać, a następnie zabij sesję ssh i idź do domu.

STOSOWANIE

reptyr PID

„reptyr PID” pobierze proces o identyfikatorze PID i załączy go do bieżącego terminala.

Po dołączeniu proces pobierze dane wejściowe i zapisze dane wyjściowe w nowym terminalu, w tym ^ C i ^ Z. (Niestety, jeśli będziesz to robił w tle, nadal będziesz musiał uruchomić „bg” lub „fg” w starym terminalu. Prawdopodobnie nie jest to możliwe do naprawienia w rozsądny sposób bez łatania powłoki).

DaveJohnston
źródło