Inicia o jackd com prioridade em tempo real com upstart

2

Estou tentando iniciar o jackd com prioridade em tempo real na inicialização com um script de upstart, mas sem sucesso até agora. Estou usando o servidor Ubuntu 14.04. Minha versão upstart é 1.12.1.

O usuário e o grupo que estou usando no script têm permissão para usar a prioridade em tempo real, mas quando executo meu script inicial, isso não parece importar. Sempre que eu tento executá-lo eu recebo isso no log upstart:

jackdmp 1.9.10
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2013 Grame.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
Cannot create thread 1 Operation not permitted
Cannot create thread 1 Operation not permitted
Cannot create thread 1 Operation not permitted
JACK server starting in realtime mode with priority 70
Cannot lock down 82274202 byte memory area (Cannot allocate memory)
Cannot create thread 1 Operation not permitted
ERROR: messagebuffer not initialized: libffado 2.1.9999- built Oct 19 2013 16:01:07
ERROR: messagebuffer not initialized: 1408466326248438: Error (PosixThread.cpp)[ 161] Start: Cannot create realtime thread (1: Operation not permitted)
ERROR: messagebuffer not initialized: 1408466326248486: Error (PosixThread.cpp)[ 162] Start:  priority: 75
firewire ERR: FFADO: Error creating virtual device
Cannot attach audio driver
JackServer::Open failed with -1
Failed to open server

Se eu executo com meu usuário normal, ele funciona bem. Meu script inicial é muito simples:

description "jackd"

start on stopped rc
stop on runlevel [06]


exec su radiola -c "jackd -R -P 70 -d firewire -r 44100 -n 3 -p 2048"

Eu também tentei usar as estrofes setuid e setguid e start-stop-daemon, mas acabou com os mesmos resultados que acabei de descrever. Existe uma maneira de fazer o processo de inicialização em tempo real? Se não, existe outra solução para este problema?

Obrigado.

    
por Rodrigo Mantini 19.08.2014 / 18:51

1 resposta

1

Isso foi respondido em stackoverflow:

link

Por exemplo, você precisa usar as estrofes:

limit memlock unlimited unlimited
limit rtprio 95 95
    
por Rodrigo Mantini 30.12.2014 / 15:44