552 Poznaj Limu
552 Poznaj Limu
Różne nazwy sygnałów
Sygnały takie jak hup czy kill występują również często w innej postaci: sighup, SIGKILL. Zazwyczaj obie formy są poprawne i akceptowane przez większość programów, niektóre programy jednak akceptu ją tylko jedną z tych dwóch.
Za pomocą bash można zdobyć identyfikatory wszystkich działających aktualnie procesów. Aby zdobyć identyfikatory pozostałych, należy skorzystać z pomocy ps. Możemy wyłączyć tylko procesy, które są aktualnie naszą własnością, chyba że jesteśmy administratorami - wtedy możemy wyłączyrć dowolny proces.
Składnia polecenia kill wygląda tak:
kill -s <sygnał> <identyfikator procesu>
Aby wyświetlić listę wszystkich sygnałów i przypisanych im wartości liczbowych, należy wpisać: kill -l
Domyślnym sygnałem wysyłanym (jeśli nie podamy innego) przez kill jest term. Wyłączanie procesu
1. Zdobądź identyfikator procesu poleceniem ps. Jeśli lista procesów jest za długa, a znasz nazwę procesu, możesz przesłać wynik polecenia potokiem (ang. pipc) do polecenia greep, które znajdzie odpowiedni identyfikator.
2. Gdy już masz odpowiedni identyfikator procesu, wpisz polecenie kill <identytikator procesu>. Pojawi się ponownie znak gotowości polecenia kill. Jeśli bash upiera się, że nie ma takiego procesu, oznacza to, że albo masz zły identyfikator, albo że proces został już wyłączony.
3. Po wykonaniu podanego w poprzednim punkcie polecenia, bash powinien wyświetlić następujący komunikat:
111+ Terminated find/ -nama what
Jeśli taki komunikat się nie pojawi, oznacza to. że proces nic odpowiada na sygnał
term. W tym przykładzie wyłączyłeś program find.
4. Jeśli bash nie wyświetli takiego komunikatu, a wywołanie polecenia ps pokaże, że proces nadal przeszkadza w pracy zajmując cenny czas procesora, potrzebować będziesz drastyczniejszego środka perswazji. Najpierw musisz się upewnić, żc usuwany program nie zajmuje się zamykaniem jakichś programów, które powinny zostać zamknięte, a następnie wpisz następujące polecenie:
kill -s 9 <identytikator procesu>