En ubuntu, pulseaudio y jack se toman un espacio compartido en la RAM para alocar memoria. Este espacio está montado en /dev/shm. Por ejemplo, en mi caso:
df -h
S.ficheros Tamaño Usado Disp Uso% Montado en
none 1000M 60K 1000M 1% /dev/shm
Por alguna razón, pulseaudio deja basura y puede llegar a atascar la RAM, sobretodo en ordenadores que no andan sobrados, 512 MB por ejemplo. (ver
https://bugs.launchpad.net/ubuntu/+source/jack-audio-connection-kit/+bug/491329 y
http://pulseaudio.org/ticket/806).
Se puede comprobar con
ls -l /dev/shm
En mi caso, ahora mismo (estoy ejecutando jackd):
ls -l /dev/shm
total 0
drwx------ 3 pablo pablo 60 2011-01-15 20:57 jack-1000
Pero a mucha gente le ocurre que /dev/shm está repleto de archivos del tipo
pulse-shm-xxxxxxxxx y no con 60K sino ocupando mucha más memoria, y no sólo uno, sino unos cuantos.
Yo tampoco he desinstalado pulseaudio, lo que hago es lo que comenta monon. Lo mato y evito el respawn, pero también borro los
pulse-shm-xxxxxx desde que me enteré que dan problemas. Por cierto,
killall pulseaudio,
pulseaudio -k y
pulseaudio --kill hacen lo mismo que yo sepa.
En mis scripts de qjackctl, hago esto:
Antes de iniciar jackd (en lugar de
artshell -q terminate que es completamente inútil):
#!/bin/bash
#mato pulseaudio y espero
sed -i 's/yes/no/g' ~/.pulse/client.conf
pulseaudio -k
sleep 2
#limpio /dev/shm
rm -f /dev/shm/pulse*
Después de iniciar jackd:
#!/bin/bash
#Lanzo a2jmidid y patchage
a2jmidid -e &
sleep 1
patchage &
#Vuelvo a borrar /dev/shm de pulse*
rm -f /dev/shm/pulse*
Veis que limpio
/dev/shm incluso después de haber matado pulseaudio porque increíblemente a veces me ocurría que pulseaudio dejaba uno de sus archivitos. Seguramente no pasa nada pero por si acaso.
Y después de detener jackd, vuelvo a poner a "yes" el respawn de pulseaudio y lo arranco:
#!/bin/bash
# mato jackd
killall jackd
sleep 1
# Arranco pulseaudio
sed -i 's/no/yes/g' ~/.pulse/client.conf
pulseaudio --start
pulseaudio --start y
pulseaudio -D hacen lo mismo o parecido.
De esta forma, cuando estoy con jackd pulseaudio está completamente fuera del juego y cuando detengo jackd, pulseaudio vuelve a entrar como si no hubiera pasado nada.
Y todo esto, con un click para iniciar jackd y otro click para detenerlo, gracias a la utilidad de lanzar scripts de qjackctl.
A la pregunta original, como dice monon, no uses gksu en un script de usuario, pero no sólo en esa línea sino en ninguna y nunca. Y como propongo más arriba, añade la línea rm -f /dev/shm/pulse* a tu script después de matar pulseaudio. Es más, puede que esa línea sea lo único que necesites. Comprueba tu directorio
/dev/shm
Y, hagas lo que hagas, no te dejes ni un espacio ni una letra ni guión. No es lo mismo
pulseaudio start que
pulseaudio --start. Lo primero no hace nada.
Saludos, Pablo