| TASKSET(1) | Polecenia użytkownika | TASKSET(1) |
NAZWA
taskset - ustawia lub pobiera koligację procesora dla wątku
SKŁADNIA
taskset [opcje] maska polecenie [argument...]
taskset [opcje] -p [maska] pid
OPIS
Polecenie taskset służy do ustawiania lub pobierania koligacji (przypisania) procesora działającego procesu o podanym pid albo do uruchomienia nowego polecenia o podanej koligacji procesora. Koligacja procesora jest własnością dyspozytora, która "wiąże" proces z podanym zbiorem procesorów w systemie. Linuksowy planista będzie przestrzegał podanego przypisania procesora i nie uruchomi procesu na innym procesorze. Proszę zauważyć, że linuksowy dyspozytor obsługuje również naturalną koligację procesora: planista stara się utrzymywać procesy na tym samym procesorze, dopóki jest to praktyczne, ze względów wydajnościowych. Z tego względu, wymuszanie niestandardowego przypisania procesora jest użyteczne tylko w niektórych zastosowaniach. Koligacja niektórych procesów, jak wątków jądra przypisanych procesorowi, nie może być ustawiona.
Koligacja procesora jest reprezentowana jako maska bitowa, gdzie najniższy bit odpowiada pierwszemu logicznego procesorowi, a najwyższy bit odpowiada ostatniemu logicznemu procesorowi. Nie wszystkie procesory muszą istnieć w danym systemie, jednak maska może podawać więcej procesorów, niż jest obecnych. Pobrana maska odwzoruje jedynie bity odnoszące się do procesorów fizycznie dostępnych w systemie. Jeśli poda się nieprawidłową maskę (tj. niezawierającej żadnego prawidłowego procesora w bieżącym systemie) zwracany jest błąd. Maski można podawać szesnastkowo (z lub bez przedrostka "0x") albo jako listę procesorów wraz z opcją --cpu-list. Na przykład:
0x00000001
0x00000003
FFFFFFFF
0x32
--cpu-list 0-2,6
--cpu-list 0-10:2
Gdy taskset powraca, jest gwarantowane, że podany program został zaszeregowany na prawidłowy procesor.
OPCJE
-a, --all-tasks
-c, --cpu-list
-p, --pid
-h, --help
-V, --version
STOSOWANIE
Domyślnym zachowaniem jest uruchomienie nowego polecenia z podaną maską koligacji:
Można również pobrać koligację procesora istniejącego zadania:
Albo ją ustawić:
Jeśli poda się listę procesorów dla istniejącego procesu, konieczne jest łączne stosowanie opcji -p i -c:
Postać --cpu-list służy wyłącznie do uruchamiania nowych poleceń:
UPRAWNIENIA
Użytkownik może zmienić koligację procesora procesu należącego do tego samego użytkownika. Użytkownik musi posiadać przywilej CAP_SYS_NICE, aby zmienić przypisanie procesora procesu należącego do innego użytkownika. Użytkownik może pobrać maskę koligacji dowolnego procesu.
STATUS ZAKOŃCZENIA
taskset zwraca 0 w trybie pobierania koligacji, o ile tylko podany PID istnieje.
taskset zwraca 0 w trybie ustawiania koligacji, o ile tylko zwróci je podległe wywołanie systemowe sched_setaffinity(2). Powodzenie polecenia nie gwarantuje, że podany wątek faktycznie został zmigrowany na wskazany procesor(y), lecz jedynie że nie zostanie przeniesiony na procesor spoza maski koligacji. Na przykład, można ustawić koligację wątku jądra kswapd, lecz wątek może nie być zmigrowany od razu, nie ma też gwarancji, że kiedykolwiek tak się stanie:
$ ps ax -o comm,psr,pid | grep kswapd
kswapd0 4 82
$ sudo taskset -p 1 82
aktualna lista przypisań dla pidu 82: 1
nowa lista przypisań dla pidu 82: 1
$ echo $?
0
$ ps ax -o comm,psr,pid | grep kswapd
kswapd0 4 82
$ taskset -p 82
aktualna lista przypisań dla pidu 82: 1
Inaczej będzie, gdy użytkownik poda nieprawidłową koligację, wówczas taskset wypisze błąd i zwróci 1:
$ ps ax -o comm,psr,pid | grep ksoftirqd/0
ksoftirqd/0 0 14
$ sudo taskset -p 1 14
aktualna lista przypisań dla pidu 14: 1
taskset: nie udało się ustawić przypisań dla pidu
14: błędny argument
$ echo $?
1
PRZYKŁADY
Wypisanie bieżącej koligacji procesora jako listy.
$ taskset -pc 0
aktualna lista przypisań dla pidu: 1355988: 0-47
AUTORZY
Autor: Robert M. Love.
PRAWA AUTORSKIE
Copyright © 2004 Robert M. Love. Jest to wolne oprogramowanie; warunki rozpowszechniania znajdują się w źródle programu. NIE ma gwarancji, nawet PRZYDATNOŚCI HANDLOWEJ czy PRZYDATNOŚCI DO OKREŚLONEGO CELU.
ZOBACZ TAKŻE
chrt(1), nice(1), renice(1), sched_getaffinity(2), sched_setaffinity(2)
Schemat szeregowania zadań w Linuksie opisano w podręczniku sched(7).
ZGŁASZANIE BŁĘDÓW
Problemy należy zgłaszać w systemie śledzenia błędów https://github.com/util-linux/util-linux/issues.
DOSTĘPNOŚĆ
Polecenie taskset jest częścią pakietu util-linux, który można pobrać ze strony Archiwum jądra Linux https://www.kernel.org/pub/linux/utils/util-linux/.
| 2026-09-02 | util-linux 2.42.3 |