He configurado algunas aplicaciones para que se inicien en cada inicio de sesión (por ejemplo, redshift-gtk, gtg) automáticamente, pero después de agregarlas a las aplicaciones de inicio ( System -> Preferences -> Startup Applications
) obviamente, el tiempo necesario para iniciar sesión ha aumentado. Debido a todo esto, el tiempo que tardan en aparecer mis paneles, escritorio, etc. es demasiado largo, hasta que me veo obligado a esperar.
No necesito que estas aplicaciones estén disponibles de inmediato, pero sería bueno que eventualmente se inicien, mientras que el menú / panel de ubuntu está disponible para ejecutar otras aplicaciones que pueda necesitar.
Intenté usar el comando at, con la intención de editar todas las aplicaciones de inicio para poner los comandos en la cola at, pero esto no funcionó ya que las aplicaciones no obtienen las variables de entorno necesarias (como DISPLAY).
¿Para esto nice
se usa el comando? ¿Alguna otra idea de cómo puedo lograr esto? Si es posible, me gustaría evitar editar los comandos de las aplicaciones de inicio, ya que esto significaría un gran esfuerzo para replicar en otras máquinas que uso.
Respuestas:
El número de segundos necesarios para esperar a que se cargue su escritorio es arbitrario y puede cambiar según la situación. En lugar de
sleep
, intente usar lo siguiente para ejecutar aplicaciones de inicio tan pronto como la carga del sistema haya disminuido:(Editar: Se agregó la sugerencia de koushik).
Guárdelo como
~/bin/run-when-load-low
y agreguerun-when-load-low 'COMMAND'
Preferencias de aplicaciones de inicio.Notas sobre este método:
DISPLAY
variable de entorno a la aplicación. Para la mayoría de las aplicaciones de escritorio, esto será todo lo que necesita. Dicho esto, asegúrese de considerar cualquier caso especial y tenga en cuenta este hecho al solucionar cualquier problema que no se esté comportando correctamente. Un buen lugar para comenzar si cree que una aplicación puede necesitar que se pasen otras variables de entorno esprintenv
la documentación de la aplicación, aunque personalmente todavía no me he encontrado con este problema.batch
solo afecta cuando se ejecutan aplicaciones; no altera su prioridad / amabilidad.run-when-load-low 'gedit My\ Notes.txt'
. Si realmente necesita para pasar parámetros entre comillas simples para su aplicación, que tendrá que utilizar comillas dobles en el comando de inicio:run-when-load-low "gedit 'My Notes.txt'"
. Para algo más complicado que esto, probablemente sea mejor modificar una copia del script con su comando codificado.fuente
batch
? Además, ¿es posible que la carga de la CPU se reduzca antes de que el escritorio haya terminado de cargarse por completo (por ejemplo, esperando que se carguen algunos íconos en el disco) y que estas aplicaciones comiencen a producir una situación similar a la anterior? En otras palabras, ¿los comandos se ejecutan con prioridad inherentemente inferior por lotes que producen cuando otras aplicaciones quieren ejecutarse?batch
cola como todavía ejecutándose, por lo que también hice que el proceso se inicie en segundo plano. La línea modificada es la siguiente:echo "export DISPLAY=$DISPLAY; notify-send 'Running on Load low' '$1' && $1 &" | batch
Descubrí que solo usar
sleep 10 && COMMAND
como nombre de comando no funcionaba. Tuve problemas con la carga de conky y xchat demasiado pronto y me corrompí de alguna manera. Tuve que escribir un pequeño guión llamado~/bin/startup
y poner esto en él:Debe cambiar sus permisos para poder ejecutarlos
chmod +x ~/bin/startup
y luego reemplazar la entrada de las aplicaciones de inicio con el comandostartup
y disparará todo en el script.Podría tener un archivo para cada aplicación si estuviera inclinado de esa manera.
fuente
sleep
va a no retrasar el arranque. Las aplicaciones de inicio no bloquean, lo que significa que se puede cargar más de una cosa a la vez.sleep
ing permite que el resto del gnomo se cargue y luego cargue las cosas menos esenciales.Use el comando 'dormir'.
En Sistema -> Preferencias -> Aplicaciones de inicio, edite el comando para los programas que desea retrasar para:
Reemplace 10 con el número de segundos que desea que espere y COMANDÉ con lo que estaba originalmente en el cuadro de comando.
fuente
COMMAND &
(ejecutar en segundo plano) funcionaría.