processes unix process control
Zarządzanie procesami w systemie Unix:
W systemie Unix wszystkie instrukcje poza jądrem są wykonywane w kontekście procesu.
Proces to sekwencja instrukcji, a każdy proces ma powiązany z nim blok kontrolowanych danych. Procesami można manipulować w sposób podobny do manipulowania plikami.
Na przykład, tak jak „ls” może być użyte do wyświetlenia listy plików, „ps” może zostać użyte do wyświetlenia listy procesów.
Wideo Unix nr 23:
W tym samouczku omówimy, jakie informacje związane z procesami są przechowywane, a także opiszemy niektóre polecenia używane do zarządzania procesami. Podamy również krótki opis sposobu debugowania skryptów poleceń.
Czego się nauczysz:
- Informacje o procesach systemu Unix
- Polecenia sterowania procesem
- Debugowanie w systemie Unix
- rekomendowane lektury
Informacje o procesach systemu Unix
Tabela procesów zawiera informacje o wszystkich aktualnie uruchomionych procesach. Głównym celem tej tabeli jest efektywne zarządzanie wszystkimi działającymi procesami.
Uwaga: Jako wielozadaniowy system operacyjny dla wielu użytkowników, Unix będzie miał wiele procesów uruchomionych w tym samym czasie.
pl sql wywiad pytanie i odpowiedź
Tabela zawiera informacje takie jak:
- Identyfikator procesu
- Identyfikator procesu nadrzędnego
- Stan procesów
- użycie procesora
Procesy w systemie Unix przechodzą przez różne stany w zależności od różnych okoliczności. Zmiany stanu mogą być wyzwalane przez to, czy proces musi czekać na zakończenie operacji odczytu lub zapisu, czy też trzeba dać szansę na uruchomienie innego, bardziej pilnego procesu.
Polecenia sterowania procesem
Dostępnych jest wiele poleceń umożliwiających przeglądanie procesów i manipulowanie nimi. Do przeglądania informacji o stanie procesu można użyć polecenia „ps”.
Komenda | ps - podaje informacje o wszystkich aktualnie uruchomionych procesach. |
---|---|
Wspólna składnia | $ ps (OPCJE) |
Przykład 1 | $ ps Podaje informacje o procesie, w tym PID, nazwę terminala, czas utworzenia i nazwę procesu. |
Jak omówiono we wcześniejszym samouczku, procesy można sklasyfikować jako pierwszoplanowe, w tle lub demona. Kiedy polecenie jest uruchamiane z terminala, działa normalnie na pierwszym planie. Aby uruchomić proces w tle, można użyć przycisku „&” na końcu polecenia.
Przykład:
$ grep “how” file1 > file2 &
To polecenie wyszuka wiersze zawierające wzorzec „jak” i zapisze wynik w pliku2. Jeśli plik1 jest dość duży, możemy chcieć wykonać inne akcje i uruchomić to polecenie w tle. Z „&” na końcu polecenie to będzie działać jako proces w tle.
Możliwe jest zawieszenie procesu pierwszoplanowego za pomocą polecenia „^ Z”. To polecenie przenosi bieżący proces pierwszoplanowy do stanu wstrzymania w tle. Stamtąd proces może zostać wznowiony w tle za pomocą polecenia „bg” lub z powrotem na pierwszy plan za pomocą polecenia „fg”.
Każdy proces jest również powiązany z priorytetem. Służy to do zapewnienia, że system operacyjny jest w stanie sprawiedliwie przydzielić czas do różnych zadań przetwarzania. Polecenie „nice” może być użyte do zmniejszenia priorytetu procesu i tym samym być „miłe” dla innych procesów, tj.
fajnie
jak otworzyć plik open.dat na iPhone
Ta linia uruchomi określone polecenie z niższym priorytetem - domyślnie priorytet zostanie zmniejszony o 10. Polecenie przyjmuje również parametr, który może być użyty do użycia innego poziomu „uprzejmości”.
Przykład:
$ nice -20 ls
To polecenie uruchamia „ls” z priorytetem zmniejszonym o 20.
Możliwe jest również zwiększenie priorytetu poprzez negatywną „uprzejmość”. Jednak wymaga to uprawnień administratora.
Kiedy terminal lub sesja logowania jest zamknięta, wysyła sygnał SIGHUP do procesów potomnych. Domyślnie ten sygnał spowoduje zakończenie procesów potomnych. Polecenia „nohup” można użyć, aby umożliwić kontynuowanie działania poleceń nawet po zakończeniu sesji logowania.
Przykład:
$ nohup soft file1 > file2
Za pomocą tego polecenia sortowanie pliku1 i zapisywanie w pliku2 będzie kontynuowane nawet po wylogowaniu się z systemu.
Polecenie „kill” może służyć do kończenia dowolnego procesu w zależności od uprawnień.
Przykład:
$ kill (options)
To polecenie zakończy proces o identyfikatorze procesu. PID procesu można uzyskać za pomocą polecenia „ps”.
To polecenie „at” jest używane do wykonywania poleceń w określonym dniu i czasie w przyszłości.
Przykład:
$ at 8pm sort file1>file2
Debugowanie w systemie Unix
Unix zapewnia szereg mechanizmów pomagających znaleźć błędy w skryptach poleceń. Mechanizmy te mogą służyć do przeglądania śladu tego, co jest wykonywane, tj. Kolejności wykonywania poleceń. Śledzenie może służyć do zrozumienia i weryfikacji logiki i sterowania przepływem skryptu.
=> ustaw -v
tryb gadatliwy: Ustawienie tej opcji przed uruchomieniem polecenia zapewni, że polecenie, które zostanie wykonane, zostanie wydrukowane na standardowe wyjście, zanim zostanie faktycznie wykonane.
=> set -x
tryb śledzenia wykonania: Ustawienie tej opcji spowoduje wyświetlenie każdego polecenia w trakcie jego wykonywania wraz z jego argumentami.
=> ustaw -n
tryb no-exec: Ustawienie tej opcji powoduje wyświetlenie błędów bez wykonywania poleceń.
Sprawdź nasz nadchodzący samouczek, aby dowiedzieć się więcej Zaawansowane skrypty powłoki.
jak otworzyć plik .eps
POPRZEDNIA samouczek | NEXT Tutorial
rekomendowane lektury
- Polecenia sterujące procesami systemu Unix, takie jak Ps i Top (część C)
- Polecenia systemu Unix: podstawowe i zaawansowane polecenia systemu Unix z przykładami
- Unixowe polecenia przetwarzania tekstu: filtry uniksowe z przykładami
- Samouczek potoków w systemie Unix: Potoki w programowaniu w systemie Unix
- Więcej filtrów uniksowych i poleceń Awk, Sed w przetwarzaniu tekstu
- Argumenty wiersza poleceń w skrypcie powłoki systemu Unix z przykładem
- Samouczek dotyczący systemu UNIX dla początkujących (ponad 20 szczegółowych filmów szkoleniowych na temat systemu Unix)
- Jak porównać dwa pliki w systemie Unix: polecenia porównywania plików