Utilice xdg-open para abrir una URL con un nuevo proceso

Utilice xdg-open para abrir una URL con un nuevo proceso

Estoy empezando a experimentar conCrunchbang(que está basado en Debian y utilizaterminador) como entorno de desarrollo web, y una de las cosas con las que tengo problemas es el comportamiento de xdg-open. Vengo de una experiencia en OSX, así que perdónenme si esta pregunta parece densa.

Me gustaría poder abrir una URL xdg-open http://www.google.comy luego continuar usando la misma ventana de terminal para trabajar (así es como openfunciona en OSX). En este momento, usar xdg-openocupa la pestaña/sesión actual hasta que cierro la ventana del navegador o finalizo manualmente las cosas con ctrl + c. Preferiría que iniciara un nuevo proceso, de esa manera puedo abrir una URL, consultar los datos de la página y usarla en la misma pestaña/ventana sin necesidad de abrir una adicional.

Respuesta1

Es extraño, funciona así desde el primer momento en mi Debian. Intente ejecutarlo en segundo plano:

xdg-open http://www.google.com &

Puede convertir esto en una función agregando estas líneas a su ~/.bashrcarchivo:

function open () {
    xdg-open "$*" &
}

Luego puede simplemente ejecutarlo open http://www.google.comy se ejecutará en segundo plano.

Respuesta2

Si desea desconectar el proceso del shell actual en lugar de iniciarlo como un trabajo en segundo plano xdg-open http://www.google.com &, me gusta eldetachutilidad:

detach xdg-open http://www.google.com

Se podría crear un alias para esto. Me gusta detachporque nohupcierra stdin stdout y stderr de forma predeterminada para que su invocación sea más limpia.

Respuesta3

xdg-openespera a que termine el programa. Esto es por diseño. Si el programa es un programa en modo texto, debe permanecer en primer plano en la terminal. Incluso si el programa es GUI, este comportamiento es útil en caso de que xdg-opense use desde un script y el script quiera realizar algo después de que el archivo haya sido editado (por ejemplo, enviar la nueva versión a algún lugar o crear algo con la nueva versión).

Si no quieres esperar, ejecútalo xdg-openen segundo plano. Puede ejecutar cualquier comando de shell en segundo plano colocando un signo comercial al final.

xdg-open http://www.google.com &

Con algunos programas, xdg-openregresa inmediatamente. En realidad lo que sucede es que el programa que xdg-openinvoca regresa inmediatamente. Esto suele suceder con los programas GUI que abren todos los archivos en una sola instancia: cuando los inicia por segunda vez, envían un mensaje a la instancia en ejecución para indicarle que abra el archivo y salga inmediatamente.

Respuesta4

Prueba esto:

DISPLAY=:0.0; xdg-open '<url>'

Utilizo esta técnica para poner en cola las URL magnet:// en mi cliente Bit Torrent Vuze.

ssh someserver "DISPLAY=:0.0; xdg-open 'http://www.google.com/'"

Las comillas simples ayudan a proteger el contenido de las URL para que el shell no intente interpretarlas.

información relacionada