Jak wstrzymać i wznowić skrypty powłoki w systemie Linux: Praktyczny przewodnik

Jedną z potężnych funkcji systemu Linux jest możliwość wstrzymania wykonywania skryptów powłoki i wznowienia ich później. Ten przewodnik przedstawia podstawowe metody kontroli wykonania skryptów powłoki, eksplorując sposoby na zwiększenie efektywności pracy dzięki wykorzystaniu tych możliwości. Omawiamy szeroki zakres technik, od używania poleceń kontroli zadań po metody wstrzymywania wewnątrz skryptów.

Spis treści

Czym są skrypty powłoki?

Skrypty powłoki to typ języka skryptowego używanego w systemach Linux i podobnych do Unix. Pozwalają na zapisanie serii poleceń w pliku i wykonanie ich jako pojedynczy plik wykonywalny. Skrypty powłoki umożliwiają automatyzację złożonych zadań i efektywne zadania administracji systemem. Mogą być wykonane bezpośrednio przez interfejs oparty na tekście lub jako przetwarzanie wsadowe i są szeroko stosowane na różnych poziomach systemu.

Podstawy wstrzymywania: Używanie Ctrl+Z

Najbardziej podstawową metodą wstrzymania programu uruchomionego z linii poleceń skryptu powłoki lub linii poleceń jest użycie skrótu klawiszowego Ctrl+Z. Ta akcja wstrzymuje obecnie działający proces w pierwszym planie i przypisuje mu numer zadania przez system. Wstrzymany proces może być przeniesiony do tła za pomocą polecenia bg lub wznowiony w pierwszym planie za pomocą polecenia fg.

Ta metoda jest niezwykle przydatna do tymczasowego zatrzymywania skryptów lub programów, które wykonują się długo, pozwalając na priorytetowe wykonanie innych zadań. Służy również jako środek awaryjny do bezpiecznego zatrzymywania programów, które mogą produkować niezamierzone wyniki. Użycie Ctrl+Z do wstrzymania jest pierwszym krokiem w wykorzystaniu funkcji kontroli zadań systemu Linux, niezbędnych do efektywnego zarządzania systemem.

Przegląd poleceń kontroli zadań

Linux jest wyposażony w funkcje kontroli zadań, które pozwalają na efektywne zarządzanie wieloma procesami. Te funkcje umożliwiają wykonywanie procesów w tle lub pierwszym planie oraz wznowienie wstrzymanych procesów. Kluczowe polecenia kontroli zadań to:

  • jobs: Wyświetla listę i status zadań związanych z bieżącą sesją powłoki. Można zobaczyć, czy zadanie jest uruchomione w tle czy zostało zatrzymane.
  • bg: Wznawia zatrzymane (wstrzymane) zadanie w tle. Jeśli nie zostanie określone zadanie, kieruje do ostatniego zatrzymanego zadania.
  • fg: Wznawia zadanie w tle lub zatrzymane zadanie w pierwszym planie. To polecenie pozwala ponownie wprowadzać dane do zadania.
  • kill: Kończy zadanie lub proces. Można określić numer zadania lub identyfikator procesu, aby zakończyć określone zadanie lub proces.

Opanowanie tych poleceń pozwala na elastyczne kontrolowanie wielu procesów w systemie Linux, zwłaszcza w zarządzaniu długotrwałymi skryptami lub procesami.

Wykonywanie w tle za pomocą polecenia bg

Polecenie bg służy do wznowienia zatrzymanego (wstrzymanego) zadania w tle. Dzięki temu poleceniu, zadanie może kontynuować działanie bez wymagania interakcji użytkownika, pozwalając na wykonanie innej pracy w pierwszym planie.

Aby uruchomić zadanie w tle, najpierw wstrzymaj działające zadanie w pierwszym planie za pomocą Ctrl+Z. Następnie możesz je wznowić w tle, określając numer zadania po poleceniu bg. Numer zadania można znaleźć za pomocą polecenia jobs.

Na przykład, jeśli wynik polecenia jobs był następujący:

[1]+  Stopped                 myscript.sh
[2]   Running                 another_script.sh &

Aby wznowić myscript.sh w tle, należałoby wykonać następujące polecenie:

bg %1

To polecenie wznawia myscript.sh, zadanie numer 1, w tle. Ponieważ zadania w tle nie akceptują wejścia użytkownika, zaleca się przekierowanie wyjścia do pliku dziennika lub używanie polecenia jobs do sprawdzania ich statusu i wyjścia.

Powrót do pierwszego planu za pomocą polecenia fg

Polecenie fg jest używane do przywrócenia zadania w tle lub zatrzymanego zadania z powrotem do pierwszego planu i wznowienia go. Wykorzystanie tego polecenia pozwala na powrót do procesu, który jest uruchomiony w tle lub jest wstrzymany, do pierwszego planu dla bezpośredniego wejścia użytkownika i monitorowania.

Aby wznowić zadanie w pierwszym planie, najpierw zidentyfikuj numer zadania, sprawdzając bieżący status zadania za pomocą polecenia jobs. Następnie wykonaj polecenie fg, po którym następuje numer zadania. Zauważ, że numer zadania powinien być poprzedzony znakiem %.

Na przykład, jeśli następujące zadania były uruchomione w tle:

[1]-  Running                 background_task.sh &
[2]+  Stopped                 paused_script.sh

Aby wznowić paused_script.sh (numer zadania 2) w pierwszym planie, użyj następującego polecenia:

fg %2

Ta operacja przywraca paused_script.sh do pierwszego planu dla interakcji z użytkownikiem. Polecenie fg jest szczególnie skuteczne dla procesów, które działają przez długi czas lub wymagają szczegółowych operacji pod nadzorem użytkownika. Wznowienie wykonania w pierwszym planie pozwala na monitorowanie postępu w czasie rzeczywistym i bezpośrednią interwencję w razie potrzeby.

Wyświetlanie listy zadań za pomocą polecenia jobs

Polecenie jobs służy do wyświetlania listy i statusu zadań związanych z bieżącą sesją powłoki. Pozwala użytkownikom zobaczyć procesy działające w tle, te które są wstrzymane (zatrzymane) i inne stany zadań.

Wykonanie polecenia jobs przypisuje unikalny numer zadania do każdego zadania, wyświetlany obok jego statusu (działające, zatrzymane itp.). Ułatwia to określenie, które zadanie kontrolować za pomocą poleceń bg, fg lub kill.

Na przykład, jeśli wynik wykonania polecenia jobs jest wyświetlany następująco:

[1]   Running                 ./long_running_script.sh &
[2]-  Stopped                 ./paused_script.sh
[3]+  Running                 ./background_task.sh &

Z tego wyniku można stwierdzić, że numer zadania 1 jest uruchomiony w tle, numer zadania 2 jest zatrzymany (wstrzymany), a numer zadania 3 także działa w tle. Na podstawie tych informacji można zdecydować o przywróceniu określonego zadania do pierwszego planu, wznowieniu go lub zakończeniu.

Polecenie jobs jest niezbędnym narzędziem do zwię

kszania efektywności pracy w systemie Linux, niezbędne do zarządzania i monitorowania procesów. Jest szczególnie przydatne podczas jednoczesnego uruchamiania wielu zadań lub zarządzania długotrwałymi skryptami.

Kontrolowanie skryptów powłoki za pomocą polecenia kill

Polecenie kill to potężne narzędzie do kończenia procesów. Pozwala na kontrolę skryptów powłoki i dowolnego procesu, określając konkretny identyfikator procesu (PID) lub numer zadania, kończąc ten proces. To polecenie jest niezwykle przydatne, gdy program nie odpowiada lub musi zostać zakończony w określonych warunkach.

Podstawowe użycie polegające na zakończeniu procesu obejmuje określenie PID procesu, który chcesz zakończyć, po poleceniu kill. PID można znaleźć za pomocą poleceń takich jak ps lub top.

Przykład:

kill 12345

To polecenie kończy proces z PID 12345.

Ponadto polecenie kill może działać na zadaniach kontrolowanych przez powłokę przy użyciu kontroli zadań. Aby zakończyć konkretne zadanie za pomocą jego numeru zadania, prefiks numeru zadania znakiem %.

Przykład:

kill %1

To polecenie kończy proces o numerze zadania 1.

Ponadto polecenie kill może wysyłać sygnały do procesu, umożliwiając różne efekty, takie jak natychmiastowe zakończenie (SIGKILL lub -9) lub żądanie zakończenia programu (SIGTERM lub -15).

Przykład:

kill -9 12345

To polecenie natychmiast wymusza zakończenie procesu z PID 12345.

Polecenie kill, będąc bardzo potężnym, wymaga ostrożności w użyciu. Przypadkowe zakończenie niezbędnych procesów systemowych może wpłynąć na stabilność systemu.

Wstrzymywanie w skryptach: Polecenie sleep

Aby tymczasowo wstrzymać proces wewnątrz skryptu powłoki, użyj polecenia sleep. Polecenie to opóźnia wykonanie skryptu o określoną liczbę sekund, wstrzymując proces w tym czasie. Polecenie sleep jest szczególnie przydatne do zarządzania zadaniami zależnymi od czasu w skryptach lub wprowadzania stałego okresu oczekiwania między kolejnymi operacjami.

Podstawowe użycie jest proste: wystarczy umieścić po poleceniu sleep liczbę sekund pauzy. Na przykład, aby wstrzymać wykonanie skryptu na 5 sekund, należy napisać:

sleep 5

Oprócz sekund, polecenie sleep może również określać minuty (m), godziny (h) i dni (d). Na przykład, aby wstrzymać proces na 2 minuty, użyłbyś:

sleep 2m

Korzystając z polecenia sleep, można osiągnąć lepszą kontrolę nad zarządzaniem

procesami w skryptach powłoki. Na przykład, tworząc skrypt do tworzenia kopii zapasowych danych bez przeciążania serwera, wstawianie poleceń sleep między operacjami kopii zapasowej może pomóc zarządzać wykorzystaniem zasobów systemu.

Praktyczne scenariusze i przykłady

Uczenie się, jak wstrzymywać i wznawiać skrypty powłoki w systemie Linux, może znacząco zwiększyć efektywność Twojej pracy. Tutaj przedstawiamy praktyczne scenariusze wykorzystania kontroli zadań.

Scenariusz 1: Długotrwałe zadania w tle

Uruchamiasz skrypt do przetwarzania dużej ilości danych, ale jednocześnie musisz wykonać inne zadania. W takim przypadku możesz uruchomić skrypt w tle i sprawdzać jego status w miarę potrzeby.

    1. Uruchom skrypt w tle.

   ./data_processing_script.sh &

    1. Sprawdź uruchomione zadania za pomocą polecenia jobs.

   jobs

    1. Sprawdź, czy praca została zakończona, i w razie potrzeby przywróć ją do pierwszego planu.

   fg %1

Scenariusz 2: Dostosowywanie zasobów systemowych

Aby właściwie zarządzać zasobami systemowymi podczas uruchamiania wielu zadań, możesz tymczasowo zatrzymać określone zadanie, aby zmniejszyć obciążenie systemu.

    1. Wstrzymaj zadanie, które według Ciebie powoduje duże obciążenie.

   kill -STOP %1

    1. Gdy obciążenie systemu zmniejszy się, wznow zadanie.

   kill -CONT %1

Scenariusz 3: Automatyzacja zadań okresowych

Gdy potrzebujesz uruchomić skrypt w określonych odstępach czasu, użyj polecenia sleep, aby wprowadzić okresy oczekiwania, automatyzując wykonanie skryptu.

    1. Wykonaj skrypt, a następnie poczekaj 5 minut po jego zakończeniu.

   ./routine_task.sh
   sleep 5m

    1. Powtórz ten krok, aby automatyzować zadania okresowe.

Te scenariusze demonstrują podstawowe przykłady wykorzystania funkcji kontroli zadań systemu Linux i polecenia sleep do usprawnienia codziennych zadań i zarządzania zasobami systemowymi. Opanowanie tych technik pozwala na łatwe radzenie sobie z złożonymi zadan

iami, zwiększając produktywność w pracy. Nauka wykorzystywania tych technik przez praktyczne scenariusze umożliwia osiągnięcie większej elastyczności i efektywności w codziennych zadaniach. Przyjmijmy te umiejętności, aby usprawnić naszą pracę i skuteczniej zarządzać zadaniami w systemie Linux.

Wnioski

Opanowanie efektywnego wstrzymywania i wznawiania skryptów powłoki w systemie Linux jest kluczowe dla zwiększenia elastyczności Twojej pracy i efektywnego zarządzania zadaniami. Wstrzymywanie za pomocą Ctrl+Z, zarządzanie procesami w tle i pierwszym planie za pomocą poleceń bg i fg, wyświetlanie list zadań za pomocą polecenia jobs, kontrolowanie procesów za pomocą polecenia kill oraz wstrzymywanie w skryptach za pomocą polecenia sleep to podstawowe techniki, które każdy użytkownik Linuxa powinien znać. Odpowiednie używanie tych poleceń pozwala na efektywną kontrolę wielu procesów i zadań, poprawiając produktywność w pracy. Nauka wykorzystania tych technik przez praktyczne scenariusze umożliwia osiągnięcie większej elastyczności i efektywności w codziennych zadaniach. Przyjmijmy te umiejętności, aby usprawnić naszą pracę i zarządzać zadaniami bardziej efektywnie w systemie Linux.

Spis treści