linuxwiki.pl>Wedkarski (+infobox;) |
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]]. |
||
− | {{Infobox program |
||
− | | nazwa = Amarok |
||
− | | screenshot = [[Plik:Amarok.jpg|center|200px]] |
||
− | | autor = |
||
− | | www = http://amarok.kde.org/ |
||
− | | 1 wydanie = |
||
− | | aktualna wersja = |
||
− | | środowisko graficzne = [[KDE Software Compilation|KDE SC]] |
||
− | | typ = odtwarzacz muzyki |
||
− | | napisany w = |
||
− | | licencja = |
||
− | }} |
||
− | [[Plik:Amarok_ikona.png|left|35px|Ikona programu]] |
||
− | {{T||do czerwca 2006 roku znany jako '''amaroK'''}}odtwarzacz muzyki wchodzący w skład środowiska graficznego [[KDE Software Compilation]]. Został napisany w [[wikipedia:pl:C++|C++]] i jest dostępny na licencji GNU GPL. Jego najnowszą wersją jest wersja 2.8, wydana 16 sierpnia 2013 roku. Umożliwia słuchanie muzyki zarówno z twardego dysku, jak i z różnych muzycznych serwisów internetowych. Daje możliwość wygodnego przeglądania biblioteki utworów i dodawania ich do listy odtwarzania, według określonych kryteriów. W czasie odtwarzania utworu możliwe jest przeglądanie jego tekstu (dane są pobierane z [http://lyrics.wikia.com/ Lyrics Wiki]), czy artykułu o autorze na Wikipedii (możliwe jest ustawienie paru wersji językowych i ich priorytetu). Program umożliwia też edycję tagów ID3 zawartych w plikach MP3. |
||
+ | 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. |
||
− | == Ciekawostki == |
||
− | * Odtwarzanie muzyki Amarokiem może być kontrolowane poprzez konsolę. W tym celu należy uruchomić program poleceniem <code>amarok</code> z jednym z poniższych parametrów: |
||
− | ** <code>-r</code> lub <code>--previous</code> - przeskakuje o jedną ścieżkę na liście odtwarzania w tył; |
||
− | ** <code>-p</code> lub <code>--previous</code> - rozpoczyna odtwarzanie; |
||
− | ** <code>-t</code> lub <code>--play-pause</code> - jeśli odtwarzanie nie trwa - rozpoczyna je, w przeciwnym wypadku - wstrzymuje (pauzuje) je; |
||
− | ** <code>--pause</code> - wstrzymuje (pauzuje) odtwarzanie; |
||
− | ** <code>-s</code> lub <code>--stop</code> - zatrzymuje odtwarzanie; |
||
− | ** <code>-f</code> lub <code>--next</code> - przeskakuje o jeden utwór na liście odtwarzania w przód. |
||
− | * Nazwa programu pochodzi od [[wikipedia:pl:Amarok (album)|albumu]] Mike'a Oldfielda o tej samej nazwie. |
||
− | == |
+ | == Wysyłanie sygnałów == |
− | * [http://amarok.kde.org/ Oficjalna strona] |
||
+ | === Z poziomu poleceń terminala === |
||
− | {{KDE}} |
||
+ | 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 === |
||
− | [[Kategoria:Multimedia]] |
||
+ | 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);