2012-12-03 15 views
74

Mam polecenie, które przesyła pliki za pomocą git do zdalnego serwera z powłoki systemu Linux, a jego zakończenie zajmie wiele godzin.Jak mogę umieścić bieżący działający proces linuxowy w tle?

Jak mogę umieścić uruchomiony program w tle? Czy nadal mogę pracować nad powłoką i proces ten jest również zakończony?

+0

Zgadnij, ale czy spróbowałeś ctrl + z lub uruchomić polecenie w ten sposób; #command & – EralpB

+0

Polecenie jest już uruchomione, więc nie mam innej opcji. Nie jestem pewien, które polecenie wypróbować. nie chciałem przełamać obecnego procesu, więc nie eksperymentowałem z nim. – user825904

+0

Powinniśmy więc poczekać na bardziej profesjonalną odpowiedź :) Miałem na myśli, jeśli miałbyś szansę zacząć wszystko od nowa. (Polecenie i rzecz) – EralpB

Odpowiedz

139

CTRL + Z następnie użyj polecenia bg, aby umieścić proces w tle.

EDIT

Aby rozpocząć proces, w którym można nawet zabić terminal i nadal nosi na prowadzeniu

nohup [command] [-args] > [filename] 2>&1 & 

przykład

nohup /home/edheal/myprog -arg1 -arg2 > /home/edheal/output.txt 2>&1 & 

po prostu ignorować wyjście (niezbyt mądre) Zmień nazwę pliku do /dev/null

Aby otrzymać komunikat o błędzie ustawiony do innego pliku zmienić &1 do pliku.

+0

Próbowałem go, ale jako coś wyprowadzającego, znów pojawił się na pierwszym planie, z% pokazującym, ile danych zostało przesłanych. – user825904

+0

Proces zapisuje dane wyjściowe do terminala, gdy poinstruowałeś proces, aby zrobił to na początku. Będziesz musiał uruchomić go ponownie, aby uzyskać wynik zapisu do pliku lub '/ dev/null'. Zobacz edycję powyżej. –

+0

oznacza to, że jeśli proces jest już uruchomiony, nie ma możliwości przekierowania ouput – user825904

Powiązane problemy