linuxwiki.pl>Oselotti m (+interwiki) |
linuxwiki.pl>PiotrekD (+kat) |
||
Linia 1: | Linia 1: | ||
+ | {{T}}jeden z podstawowych i sposobów komunikacji międzyprocesowej w systemach uniksowych, w tym również w [[GNU/Linux|Linuksie]]. |
||
− | {{małą literą}} |
||
− | '''mount''' – polecenie systemów [[Unix]], montujące system plików. Pliki są zorganizowane w drzewie, hierarchicznej strukturze danych, która zakorzeniona jest w [[katalog główny|katalogu głównym]]. Pliki mogą się znajdować na wielu urządzeniach. Celem polecenia <code>mount</code> jest przyłączenie systemu plików na urządzeniu do drzewa plików. |
||
− | ==Użycie== |
||
− | <terminal>$ mount -t <typ> <urządzenie> <katalog></terminal> |
||
− | Polecenie nakazuje [[Linux (jądro)|jądru]] przyłączenie systemu plików, znalezionego na urządzeniu, które jest typu <u>typ</u> do podanego katalogu. Na czas przyłączania, zawartość, informacje o właścicielu oraz prawa katalogu stają się niedostępne. Jeżeli podajemy tylko katalog lub urządzenie, polecenie szuka punktu montowania, a w przypadku, gdy punkt montowania nie zostanie odnaleziony, szuka go w pliku [[/etc/fstab]]. |
||
+ | Sygnałami są po prostu liczby określone całkowite. Jeśli jakiś proces otrzyma sygnał, jądro systemu zatrzyma na chwilę jego dotychczasowe działanie i sprawdzi, czy posiada on kod obsługujący dany sygnał. Jeśli tak - uruchomi go, w przeciwnym wypadku - kontynuuje normalne wykonywanie procesu. |
||
− | ==Przykłady== |
||
− | <terminal>$ mount /dev/sda</terminal> |
||
− | Ładowanie systemu plików urządzenia /dev/sda. |
||
− | <terminal>$ mount --move stary-katalog nowy-katalog</terminal> |
||
− | Przeniesienie zamontowanego systemu plików do innego katalogu. |
||
+ | == Wysyłanie sygnałów == |
||
− | {{Polecenia}} |
||
+ | === Z poziomu poleceń terminala === |
||
− | [[fi:mount]] |
||
+ | Do wysyłania procesów z poziomu konsoli służy polecenie <code>[[kill]]</code>. Jej użycie ma postać |
||
+ | <terminal> |
||
+ | $ kill [przełączniki] <PID> {{...|identyfikatory wielu procesów}} |
||
+ | </terminal> |
||
+ | Jeśli nie podane zostaną żadne przełączniki zostanie wysłany sygnał <code>SIGTERM</code>. Aby wysłać inny sygnał, wystarczy podać go poprzedzonego myślnikiem (<code>-</code>). Przykładowo, wysłanie sygnału <code>SIGUSR1</code> o wartości 10 do procesu o numerze 1234, wygląda tak: |
||
+ | <terminal> |
||
+ | $ kill -10 1234 |
||
+ | </terminal> |
||
+ | |||
+ | === Z poziomu programu === |
||
+ | Wysłanie sygnału z poziomu programu jest możliwe dzięki wywołaniu systemowemu <code>kill()</code>. Jako pierwszy parametr pobiera ono sygnał, który ma zostać wysłany (w przypadku języka C można posłużyć się makrami zdefiniowanymi w pliku nagłówkowym <code><signal.h></code>), a jako drugi - PID procesu, który ma zostać zabity. Umożliwia zabicie tylko jednego procesu naraz. W przypadku powodzenia zwraca 0, w przeciwnym wypadku - -1. Użycie tego wywołania (w C) polegające na wysłaniu <code>SIGUSR1</code> do procesu o numerze 1234, wygląda tak: |
||
+ | <source lang="c"> |
||
+ | kill(10, 1234); |
||
+ | </source> |
||
+ | lub, by użyciu makr z nazwami (wymaga załączenia <code><signal.h></code>): |
||
+ | <source lang="c"> |
||
+ | kill(SIGUSR1, 1234); |
||
+ | </source> |
||
+ | |||
+ | [[Kategoria:Komunikacja międzyprocesowa]] |
Wersja z 07:24, 6 wrz 2014
Sygnały – jeden z podstawowych i sposobów komunikacji międzyprocesowej w systemach uniksowych, w tym również w Linuksie.
Sygnałami są po prostu liczby określone całkowite. Jeśli jakiś proces otrzyma sygnał, jądro systemu zatrzyma na chwilę jego dotychczasowe działanie i sprawdzi, czy posiada on kod obsługujący dany sygnał. Jeśli tak - uruchomi go, w przeciwnym wypadku - kontynuuje normalne wykonywanie procesu.
Wysyłanie sygnałów
Z poziomu poleceń terminala
Do wysyłania procesów z poziomu konsoli służy polecenie kill
. Jej użycie ma postać
<terminal>
$ kill [przełączniki] <PID> ...
</terminal>
Jeśli nie podane zostaną żadne przełączniki zostanie wysłany sygnał SIGTERM
. Aby wysłać inny sygnał, wystarczy podać go poprzedzonego myślnikiem (-
). Przykładowo, wysłanie sygnału SIGUSR1
o wartości 10 do procesu o numerze 1234, wygląda tak:
<terminal>
$ kill -10 1234
</terminal>
Z poziomu programu
Wysłanie sygnału z poziomu programu jest możliwe dzięki wywołaniu systemowemu kill()
. Jako pierwszy parametr pobiera ono sygnał, który ma zostać wysłany (w przypadku języka C można posłużyć się makrami zdefiniowanymi w pliku nagłówkowym <signal.h>
), a jako drugi - PID procesu, który ma zostać zabity. Umożliwia zabicie tylko jednego procesu naraz. W przypadku powodzenia zwraca 0, w przeciwnym wypadku - -1. Użycie tego wywołania (w C) polegające na wysłaniu SIGUSR1
do procesu o numerze 1234, wygląda tak:
kill(10, 1234);
lub, by użyciu makr z nazwami (wymaga załączenia <signal.h>
):
kill(SIGUSR1, 1234);