Supongamos gedit
que el programa que desea ejecutar es independiente (también conocido como "desautorizado", "desenredado", "desacoplado"). Hay diferentes formas dependiendo de lo que quieras hacer exactamente:
Programa ya en ejecución
Desconocer:
disown -h
es el camino a seguir si desea hacerlo con un programa que ya se está ejecutando (es decir, si lo olvidó nohup
). Primero debes detenerlo usando Ctrl+ Z. Luego puede poner en segundo plano usando bg [jobId]
(por ejemplo bg 1
). Obtiene una lista de trabajos en ejecución con su jobId usando jobs
. Después de eso, puede desacoplarlo de la terminal usando disown -h %[jobId]
. Ejemplo de sesión terminal:
$ gedit
^Z
[1]+ Stopped gedit
$ jobs
[1]+ Stopped gedit
$ bg 1
[1]+ gedit &
$ disown -h %1
$ exit
Programa aún no iniciado
nohup
nohup
No siempre está presente en todas las máquinas. Si sabe que desea desacoplar de antemano, usaría:
nohup gedit &
Tal vez tendrá que redirigir la salida de la shell, así y su programa de una fuente de entrada de pseudo, por lo que: nohup ./myprogram > foo.out 2> bar.err < /dev/null &
. Desea redirigir la salida para que no le moleste o para usarla más tarde. La entrada nula puede ayudar a prevenir hickups en ssh an such.
Subshell:
Puedes lograr un efecto similar al
$ (geany >/dev/null 2>&1 &)
Los corchetes abren una nueva subshell para ejecutar gedit. >/dev/null 2>&1
Redirige la salida de la shell a ninguna parte (suprimiendo la salida). Y &
al final pone el proceso en segundo plano.
Multiplexación de terminales
También multiplexación de terminales mediante pantalla o byobu . Básicamente ejecuta el programa en una terminal propia. Realmente puedo recomendar byobu por otras razones también. A continuación hay una lista de atajos de boybu que pueden ser útiles para sus primeros pasos:
Útil:
- F2 Crea una nueva ventana
- F3 Ir a la siguiente ventana
- F4 Ir a la ventana anterior
- F6 Separarse de la sesión y cerrar sesión
- Shift-F6 Separarse de la sesión, pero no cerrar sesión
- F7 Ingrese al modo de retroceso / búsqueda
- Ctrl-F5 Vuelva a conectar cualquier conector o agente SSH / GPG
Menos útil:
- Shift-F2 Divide la pantalla horizontalmente
- Ctrl-F2 Divide la pantalla verticalmente
- Shift-F3 Mover el foco a la siguiente división
- Shift-F4 Mover el foco a la división anterior
- Shift-F5 Contraer todas las divisiones
- F5 Actualizar todas las notificaciones de estado
- F8 Cambiar el nombre de la ventana actual
- F9 Inicie el menú de configuración de Byobu
- F12 Clave de escape de la pantalla GNU
- Alt-Pageup Desplácese hacia atrás a través del historial de esta ventana
- Alt-Pagedown Desplácese hacia adelante a través del historial de esta ventana
- Ctrl-a-! Activa o desactiva todas las combinaciones de teclas de Byobu
El 'at' daemon y otros
at
es una pequeña herramienta útil para ejecutar un comando a una hora programada. Se puede 'mal usar' para separar un comando del shell:
echo './myprogram myoption1 myoption2' | at now
También puede examinar setsid
y start-stop-daemon
, pero los otros métodos deberían ser suficientes.