uruchomienie programu w tle i zamknięcie konsoli

Czasem zachodzi sytuacja, gdy np. musimy wykonać jakiś czasochłonny proces na serwerze i musimy pilnie wyjść z pracy / domu. Albo po prostu jest już 2 w nocy 😉

Możemy zrobić to poprzez konsolę uruchamiając proces w tle na np. odległym serwerze i wylogowywując się z tego serwera. Łącznie z wyłączeniem naszego komputera!

Co to mogą być za zadania do wykonania?

  • Pobieranie (lub szczególnie wysyłanie) dużej ilości plików przez FTP
  • Wywołanie długo trwałego zapytania MySQL
  • Pobieranie torrentów – oczywiście legalnych ISO dystrybucji Linux 😉
  • Długotrwały commit / checkout w SVN (czytaj nasze artykuły poświęcone SVN)

itp.

Aby uruchomić tak proces – skorzystamy z programu screen

Uruchamianie nowej sesji screen

Sesji może być tyle ile zapragniemy. Każdą nową sesję uruchamiamy poprzez:

Czyli np. jak wysyłamy pliki na serwer w home.pl nazwijmy taką sesję:

(wielkość liter ma znaczenie)

Wtedy otworzy nam się „nowa” konsola gdzie możemy normalnie w świecie wywoływać programy. Aby rozpocząć wysyłanie FTP – mozemy tutaj użyć programu Midnight Commander – czytaj jak użyć go do obsługi FTP

Bezpieczne wylogowanie się z sesji screen

Tutaj jest klucz naszych rozważań. Jak już uruchomimy proces który musi trwać – musimy jakoś „zamknąć” sesję o naszej nazwie (tutaj: homewysylanie). W tym celu wykonujemy komibnację klawiszy:

Gotowe, sesja zamknięta.

Wznowienie sesji screen

Aby ją wznowić – musimy znać identyfikator konkretnej sesji (bo, jak zaznaczaliśmy – może być ich dowolna liczba). W tym celu listujemy aktualne sesje:

Następnie wybieramy sesję, którą chcemy wznowić poprzez podanie jej identyfikatora (oczywiście u Ciebie będzie on inny – jedynie label sesji screen – czyli nazwa homewysylanie pozostanie ta sama jeśli takiej użyjesz):

To wszystko – sesja screen którą wówczas pozostawiliśmy – wznowiona:)

Usuwanie wszystkich sesji screen

W tym celu pomocna będzie komenda killall:

Użycie komendy killall opisaliśmy tutaj.

Share This:

Skomentuj

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *