TASKSET(1) Polecenia uzytkownika TASKSET(1) NAZWA taskset - ustawia lub pobiera koligacje procesora dla watku SKLADNIA taskset [opcje] maska polecenie [argument...] taskset [opcje] -p [maska] pid OPIS Polecenie taskset sluzy do ustawiania lub pobierania koligacji (przypisania) procesora dzialajacego procesu o podanym pid albo do uruchomienia nowego polecenia o podanej koligacji procesora. Koligacja procesora jest wlasnoscia dyspozytora, ktora "wiaze" proces z podanym zbiorem procesorow w systemie. Linuksowy planista bedzie przestrzegal podanego przypisania procesora i nie uruchomi procesu na innym procesorze. Prosze zauwazyc, ze linuksowy dyspozytor obsluguje rowniez naturalna koligacje procesora: planista stara sie utrzymywac procesy na tym samym procesorze, dopoki jest to praktyczne, ze wzgledow wydajnosciowych. Z tego wzgledu, wymuszanie niestandardowego przypisania procesora jest uzyteczne tylko w niektorych zastosowaniach. Koligacja niektorych procesow, jak watkow jadra przypisanych procesorowi, nie moze byc ustawiona. Koligacja procesora jest reprezentowana jako maska bitowa, gdzie najnizszy bit odpowiada pierwszemu logicznego procesorowi, a najwyzszy bit odpowiada ostatniemu logicznemu procesorowi. Nie wszystkie procesory musza istniec w danym systemie, jednak maska moze podawac wiecej procesorow, niz jest obecnych. Pobrana maska odwzoruje jedynie bity odnoszace sie do procesorow fizycznie dostepnych w systemie. Jesli poda sie nieprawidlowa maske (tj. niezawierajacej zadnego prawidlowego procesora w biezacym systemie) zwracany jest blad. Maski mozna podawac szesnastkowo (z lub bez przedrostka "0x") albo jako liste procesorow wraz z opcja --cpu-list. Na przyklad: 0x00000001 obejmuje procesor #0 0x00000003 obejmuje procesory #0 i #1, FFFFFFFF obejmuje procesory od #0 do #31, 0x32 obejmuje procesory #1, #4 i #5, --cpu-list 0-2,6 obejmuje procesory #0, #1, #2 i #6. --cpu-list 0-10:2 obejmuje procesory #0, #2, #4, #6, #8 i #10. Przyrostek ":N" okresla krok w podanym zakresie np. 0-10:3 jest interpretowane jako lista 0,3,6,9. Gdy taskset powraca, jest gwarantowane, ze podany program zostal zaszeregowany na prawidlowy procesor. OPCJE -a, --all-tasks Ustawia lub pobiera koligacje procesora wszystkich zadan (watkow) o podanym PID. -c, --cpu-list Interpretuje maske jako numeryczna liste procesorow zamiast maske bitowa. Numery sa oddzielane przecinkami i moga zawierac przedzialy. Przyklad: 0,5,8-11. -p, --pid Dziala na istniejacym identyfikatorze procesu i nie uruchamia nowego zadania. Jesli PID wynosi zero, dziala na procesie taskset. -h, --help Wyswietla ten tekst i wychodzi. -V, --version Wyswietla wersje i wychodzi. STOSOWANIE Domyslnym zachowaniem jest uruchomienie nowego polecenia z podana maska koligacji: taskset maska polecenie [argumenty] Mozna rowniez pobrac koligacje procesora istniejacego zadania: taskset -p pid Albo ja ustawic: taskset -p maska pid Jesli poda sie liste procesorow dla istniejacego procesu, konieczne jest laczne stosowanie opcji -p i -c: taskset -pc lista-procesorow pid Postac --cpu-list sluzy wylacznie do uruchamiania nowych polecen: taskset --cpu-list lista-procesorow polecenie UPRAWNIENIA Uzytkownik moze zmienic koligacje procesora procesu nalezacego do tego samego uzytkownika. Uzytkownik musi posiadac przywilej CAP_SYS_NICE, aby zmienic przypisanie procesora procesu nalezacego do innego uzytkownika. Uzytkownik moze pobrac maske koligacji dowolnego procesu. STATUS ZAKONCZENIA taskset zwraca 0 w trybie pobierania koligacji, o ile tylko podany PID istnieje. taskset zwraca 0 w trybie ustawiania koligacji, o ile tylko zwroci je podlegle wywolanie systemowe sched_setaffinity(2). Powodzenie polecenia nie gwarantuje, ze podany watek faktycznie zostal zmigrowany na wskazany procesor(y), lecz jedynie ze nie zostanie przeniesiony na procesor spoza maski koligacji. Na przyklad, mozna ustawic koligacje watku jadra kswapd, lecz watek moze nie byc zmigrowany od razu, nie ma tez gwarancji, ze kiedykolwiek tak sie stanie: $ ps ax -o comm,psr,pid | grep kswapd kswapd0 4 82 $ sudo taskset -p 1 82 aktualna lista przypisan dla pidu 82: 1 nowa lista przypisan dla pidu 82: 1 $ echo $? 0 $ ps ax -o comm,psr,pid | grep kswapd kswapd0 4 82 $ taskset -p 82 aktualna lista przypisan dla pidu 82: 1 Inaczej bedzie, gdy uzytkownik poda nieprawidlowa koligacje, wowczas taskset wypisze blad i zwroci 1: $ ps ax -o comm,psr,pid | grep ksoftirqd/0 ksoftirqd/0 0 14 $ sudo taskset -p 1 14 aktualna lista przypisan dla pidu 14: 1 taskset: nie udalo sie ustawic przypisan dla pidu 14: bledny argument $ echo $? 1 PRZYKLADY Wypisanie biezacej koligacji procesora jako listy. $ taskset -pc 0 aktualna lista przypisan dla pidu: 1355988: 0-47 AUTORZY Autor: Robert M. Love. PRAWA AUTORSKIE Copyright (C) 2004 Robert M. Love. Jest to wolne oprogramowanie; warunki rozpowszechniania znajduja sie w zrodle programu. NIE ma gwarancji, nawet PRZYDATNOSCI HANDLOWEJ czy PRZYDATNOSCI DO OKRESLONEGO CELU. ZOBACZ TAKZE chrt(1), nice(1), renice(1), sched_getaffinity(2), sched_setaffinity(2) Schemat szeregowania zadan w Linuksie opisano w podreczniku sched(7). ZGLASZANIE BLEDOW Problemy nalezy zglaszac w systemie sledzenia bledow . DOSTEPNOSC Polecenie taskset jest czescia pakietu util-linux, ktory mozna pobrac ze strony Archiwum jadra Linux . util-linux 2.42.3 2026-09-02 TASKSET(1)