Você não pode chamar taskset para gravar as configurações a serem usadas em um processo futuro. Este modo de chamar taskset é apenas para processos atualmente em execução.
Para fixar um novo processo em um núcleo, chame taskset em seu modo direto. Você chama taskset e diz qual programa executar.
taskset -c 0 python main.py
A maneira como funciona é:
- O shell (ou outro programa de chamada) cria um novo processo (
fork) para executar (execve)taskset -c 0 python main.py. - O processo que está executando
tasksetaplica as configurações principais a si mesmo. - O processo é executado (
execvenovamente)python main.pyno mesmo processo.
Esta é a maneira como outras configurações por processo são feitas: variáveis de ambiente quando você as define para um único processo (por exemplo, com env ) ao invés de uma sessão de shell (por exemplo, com export ), CPU niceness com nice , redirecionamentos (o que geralmente é feito através da sintaxe do shell, em vez de com um utilitário separado), etc.