Programador para usuário não root e diretório pessoal criptografado

0

Eu tenho um aplicativo para o qual gostaria de usar um agendador FIFO. Meu código parece da seguinte forma:

int maxPriority = sched_get_priority_max(SCHED_FIFO);

// Max is the highest priority
sched_param desiredParam;
desiredParam.__sched_priority = maxPriority;

errno        = 0;
int retValue = sched_setscheduler(0, SCHED_FIFO | SCHED_RESET_ON_FORK, &desiredParam);

Antes de executar o aplicativo, eu executo o seguinte:

sudo setcap cap_sys_nice+ep my_application

O mesmo código funciona em um computador, mas ele falha em outros três (o valor de retorno é -1 e o errno é definido como 1 - EPERM). Acontece que esses três computadores têm uma pasta pessoal criptografada. Se o executável for movido para fora do diretório inicial, o código não falhará e o agendador poderá ser alterado.

Para ter certeza de que não é um problema relacionado à versão do kernel, tentei atualizar o kernel em uma das máquinas onde o código falhava. No entanto, isso não ajudou. No momento, a saída de uname -a é

Linux my_host 4.2.0-36-generic #42~14.04.1-Ubuntu SMP Fri May 13 17:27:22 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Ambas as máquinas têm o arquivo /etc/security/limits.conf completamente comentado.

Existe uma maneira de executar o executável também a partir da pasta pessoal?

    
por Maverik 06.06.2016 / 19:29

0 respostas