[solucionado] Enlace simbólico a firefox en el escritorio en una página determinada y habilitar demonio al inicio

Imagen de CHuLoYo
0 puntos

Hola amigos.
Necesito ayuda en un script, y no encuentro la solución. Estoy haciendo un script que descomprime unos ficheros en una determinada carpeta, y tengo que crear un enlace simbólico en el escritorio a firefox, y que inicie en una página determinada (en este caso, localhost).
Mis cuestiones son:

  1. Existe una variable global en bash que me diga el directorio del escritorio del usuario actual? (/home/usuarioxxxx/Escritorio o Desktop)?
  2. ¿cómo hago para incluir una linea de texto en un archivo para que un demonio inicie automáticamente al inicio de sesión? He oido hablar de las tuberías, o algo así, y un directorio (/etc/rcS.d) donde haces unos archivos .sh para iniciar los demonios.
  3. ¿Cómo creo un enlace simbólico a Firefox abriendo una página determinada?
  4. ¿Hay alguna manera de iniciar Firefox a pantalla completa, a parte del complemento de firefox, que hay que instalar adicionalmente?

Gracias por adelantado. Un saludo.

Imagen de slap
+1
0
-1

Hola.
1. Sí: $HOME (debes añadirle $HOME/Escritorio o $HOME/Desktop)
2. Si lo que quieres es crear un demonio debes usar como plantilla el archivo /etc/init.d/skeleton. Modificalo a tu gusto y grábalo en ese mismo directorio con un nombre que no exista. Si quieres que el demonio arranque al iniciar Ubuntu debes ejecutar: sudo update-rc.d demonio defaults
3. Abre la página en Firefox y arrastra con el ratón el icono que aparece a la izquierda de la URL al Escritorio. (Luego lo puedes mover a donde quieras).
4. Ni idea.

Saludos.
P.D.: Cuando tengas varias dudas, como ahora, es mejor que abras un tema para cada una de ellas en los foros adecuados. Así, cuando alguien busque algo en concreto, le será más fácil encontrarlo.


0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://7grados.injiniero.es

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de CHuLoYo
+1
0
-1

Muchas gracias slap. Perdón por incluir todas las cuestiones en el tema. Lo corregiré para la próxima vez. Una cosa, la variable $HOME es muy útil, pero cómo sé el idioma que tiene instalado la persona en el sistema, para localizar la carpeta Escritorio, o Desktop o lo que sea?

Y otra cosa, el enlace que he creado lo he modificado para cambiarle el título, el icono... pero cómo cambio el explorador? Es decir, abre la web en un konqueror (en el navegador predeterminado), pero tiene que abrirse en Firefox-3.0. Supongo que será en la línea:

URL[$e]=http://localhost/tpv/

$e es el explorador? Pongo URL[firefox] y no va.

Gracias y un saludo.

---------
www.atanes.es.vg
Inventando la frikilocura desde 1986

+1
0
-1
Imagen de slap
+1
0
-1

No se trata del idioma sino de la versión de Ubuntu que tenga instalada. Creo que a partir de Hardy (8.04) pasó de llamarse Desktop a Escritorio.
Puedes comprobarlo con:

test -d $HOME/Escritorio
if [ $? = 1 ];
then
  echo "No existe el directorio"
fi

Y algo similar para comprobar si existe $HOME/Desktop.

En cuanto a lo del Firefox, lo que te he explicado crea un enlace genérico a una página y se abrirá siempre con el navegador predeterminado. Si quieres abrirlo con firefox tendrás que crear un archivo que contenga:

firefox http://lawebquesea.com

Y ejecutarlo.

Saludos.


0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://7grados.injiniero.es

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de CHuLoYo
+1
0
-1

Bueno , esto último ya lo conseguí:

[Desktop Entry]
Icon=firefox-3.0
Name=TPV
Type=Application
Exec=firefox http://localhost/

un saludo

---------
www.atanes.es.vg
Inventando la frikilocura desde 1986

+1
0
-1
Imagen de CHuLoYo
+1
0
-1

Pues muchas gracias slap! Me he hecho un script que detecta si es Desktop o Escritorio y mueve el enlace simbólico a esa carpeta.

Sólo me falta el script de iniciar el demonio automáticamente. Muchas gracias y un saludo.

---------
www.atanes.es.vg
Inventando la frikilocura desde 1986

+1
0
-1
Imagen de CHuLoYo
+1
0
-1

Por cierto, estaba leyendo en tu respuesta y he visto el fichero skeleton. El problema es que no quiero crear un demonio, sino que quiero utilizar uno ya creado. Es decir, poner una línea en algún fichero que inicie al inicio de sesión que diga:

sudo /opt/demonio start

con eso bastaría. Qué sugieres?

EDITO

he visto tu comentario en http://www.ubuntu-es.org/index.php?q=node/108017#comment-303225 y estuvo a punto de servirme, de no ser que no puedo mover el demonio ya que no inicia. Tengo que iniciarlo desde su carpeta como dije anteriormente y no encuentro nada.
un saludo

---------
www.atanes.es.vg
Inventando la frikilocura desde 1986

+1
0
-1
Imagen de slap
+1
0
-1

Hola.
Edita el fichero /etc/rc.local y añade al final la línea:

/opt/demonio start

Saludos.


0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://7grados.injiniero.es

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de CHuLoYo
+1
0
-1

Bien amigo muchas gracias. Así funcionó pero no al final del archivo.

Tuve que descomentar la línea de intérprete (#!/bin/sh -e) y ponerle el exit 0 al final (y no el demonio).

Ahora la pregunta es clarísima: para meterle el demonio al final utilizaría esto:

echo "/opt/demonio start" &> /etc/rc.local

Y funcionaría, no? Cómo hago en el script para descomentar la línea de intérprete si está comentada y meterle el exit 0 al final y no el demonio, sin borrar las posibles otras líneas que tenga el usuario?

Un saludo.

---------
www.atanes.es.vg
Inventando la frikilocura desde 1986

+1
0
-1
Imagen de slap
+1
0
-1

Para editar el fichero debes hacer lo siguiente en un terminal:

sudo nano /etc/rc.local

El archivo debes dejarlo así:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Comentamos el exit 0 para que no salga del script. Como dice arriba, este script,
# por defecto, no hace nada. Pero nosotros sí que queremos que haga algo.

#exit 0

# Arrancamos el demonio
/opt/demonio start

Luego grabas con Ctrl+O y sales del editor con Ctrl+X
Tienes que reiniciar la máquina para probar que funciona.

Nota: La línea:

echo "/opt/demonio start" &> /etc/rc.local

Lo que haría es machacar el contenido del archivo /etc/rc.local y sólo tendría la línea:

/opt/demonio start

y/o los errores que el comando echo pudiera generar. Con &> estás redirigiendo tanto la salida estándar como la salida de errores al archivo /etc/rc.local.
Para añadir una línea al final de un archivo se hace con:

echo "lo que sea" >> /ruta/al/archivo

Pero en este caso, además de que necesitas permisos de root para editarlo, hay que comentar la línea del exit 0, por lo que es mejor editarlo como te he explicado.

Saludos.


0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://7grados.injiniero.es

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de CHuLoYo
+1
0
-1

Ok, gracias amigo. El problema es que el script pretende instalar una aplicación programada en php y mysql y que arranque al inicio siempre el demonio del servidor. La instalación la van a hacer personas que se supone que no entienden este tipo de cosas, así que lo de editar el archivo a mano es bastante poco viable. Así que voy a probar a ver qué pasa con la redirección >> y comento mi experiencia para el resto aquí.

un saludo

---------
www.atanes.es.vg
Inventando la frikilocura desde 1986

+1
0
-1
Imagen de slap
+1
0
-1

La redirección no te servirá de nada porque se añadirá la línea después del exit 0 con lo que el script rc.local acabará antes de ejecutar el demonio.

Saludos.


0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://7grados.injiniero.es

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de CHuLoYo
+1
0
-1

Y no puedo escribir el archivo a mi gusto? Es decir, borrar todo y poner el demonio y el exit. Sería con un cambio de línea... posiblemente \n ?

---------
www.atanes.es.vg
Inventando la frikilocura desde 1986

+1
0
-1
Imagen de slap
+1
0
-1

Explícate mejor porque no entiendo lo que quieres hacer.
No entiendo porqué puedes hacer el sudo echo "..." >> /etc/rc.local y no puedes editar el archivo a mano. ¿¿¿???

Saludos.


0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://7grados.injiniero.es

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de CHuLoYo
+1
0
-1

A ver me explicaré mejor. Gracias por tu ayuda.

El problema es que es un script que instala Firefox 3.0, el servidor web y mysql xampp, directorios de documentos y bases de datos, da permisos de root y crea un enlace en el escritorio. Para que todo esto funcione, necesita activar un demonio, que como comprenderás, para la gente que va a instalar el programa no tiene ni idea de qué es un demonio ni como funciona. Lo único que tienen que hacer es abrir el enlace del escritorio y hacer funcionar el programa. Este demonio, debe ejecutarse cada vez que se encienda el ordenador.

En el script he probado lo siguiente:

sudo echo "/opt/demonio start" &> /etc/rc.local
sudo echo "exit 0" >> /etc/rc.local

Cuando compruebo rc.local está vacío. Es decir, lo borró todo y no puso el echo.

Esto me hace falta de verdad, si por mi fuera ahorraba en disgustos y lo hacía a mano, pero qué se le va a hacer? No lo consigo de ninguna manera.

Gracias de antemano

---------
www.atanes.es.vg
Inventando la frikilocura desde 1986

+1
0
-1
Imagen de slap
+1
0
-1

Ok.
El problema es que el sudo no afecta a la redirección y por lo tanto no tienes permisos para escribir en /etc.

Tendrás que hacerlo así:

echo "/opt/demonio start" > /tmp/rc.local
sudo mv /tmp/rc.local /etc/
sudo chown root:root /etc/rc.local
sudo chmod 755 /etc/rc.local

Nota: Ya que vas a dejar el archivo rc.local con una línea sólo (la del demonio), no es necesario que le añadas al final el exit 0.
Ten cuidado con esto porque si en la máquina donde se va a ejecutar esto el fichero /etc/rc.local tuviese alguna otra instrucción, aparte del exit 0, lo vas a sustituir completamente por el tuyo.

Saludos.


0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://7grados.injiniero.es

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de CHuLoYo
+1
0
-1

[...]lo vas a sustituir completamente por el tuyo.

Exacto, y eso me trae de cabeza. ¿Qué harías tú en mi lugar?

A mi se me ocurre leer línea por línea ignorando las líneas que empiecen por # (las comentadas). Pero cómo hago para leer líneas en un archivo ? Me suena cat o grep o algo así.... y con un for leer línea por línea?

Otra pregunta es que si el #!/bin/sh -e es necesario.

---------
www.atanes.es.vg
Inventando la frikilocura desde 1986

+1
0
-1
Imagen de slap
+1
0
-1

Usando sed se mantiene el contenido:

sed "s/exit 0/\/opt\/demonio start\\nexit 0/" /etc/rc.local > /tmp/rc.local
sudo mv /tmp/rc.local /etc/
sudo chown root:root /etc/rc.local
sudo chmod 755 /etc/rc.local

La línea:

/opt/demonio start

se añadirá delante del exit 0 y se mantendrá el resto del contenido del archivo intacto.

Saludos.


0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://7grados.injiniero.es

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de CHuLoYo
+1
0
-1

Muchas gracias amigo. Tu código me ha dado algunas ideas pero nada. Tal y como lo pusiste elimina todo el archivo y luego añade perfectamente las dos líneas, pero elimina las otras. He probado varias cosas (quitándole la s\ y tal pero nada), y no me funciona. Creo que lo voy a dejar así, y seguiré buscando .Si se te ocurre algo, por favor, házmelo saber! Me corre un poco de prisa, mañana o pasado máximo lo tengo que tener solucionado.

Un saludo y mil gracia.s

---------
www.atanes.es.vg
Inventando la frikilocura desde 1986

+1
0
-1
Imagen de slap
+1
0
-1

El código que te he pasado funciona perfectamente si lo ejecutas con bash. Lo he probado.
¿Estás ejecutando el script con bash o con otro intérprete de comandos?

Saludos.


0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://7grados.injiniero.es

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de CHuLoYo
+1
0
-1

#!/bin/bash

es decir, en bash. Lo que me hace el capuyo (xD) es borrar todas las líneas, o tal vez borra las líneas comentadas porque todo lo anterior es comentado. El resultado es que ya no tengo el archivo original (tonto de mí) y solo tengo /opt/demonio start y exit 0. :(

De todas formas muchas gracias por toda la ayuda que me estás prestando.

Ahora bien, qué es lo que significa la s/ ? El contenido del archivo existente?

un saludo

---------
www.atanes.es.vg
Inventando la frikilocura desde 1986

+1
0
-1
Imagen de slap
+1
0
-1

Aparte de la primera línea del script:

#!/bin/bash

¿Cómo lo ejecutas?
¿Has revisado que esté tal y como te lo he escrito yo?
Me extraña mucho que no te funcione ya que sed no borra nada. Como te he comentado, yo lo he probado y funciona correctamente manteniendo TODO el contenido del archivo /etc/rc.local y añadiendo antes del exit 0 la línea que arranca el demonio.

Haz una copia del archivo /etc/rc.local y ejecuta directamente en un terminal:

sed "s/exit 0/\/opt\/demonio start\\nexit 0/" /etc/rc.local > /tmp/rc.local

Copia y pega la línea desde aquí al terminal. Después comprueba el contenido del archivo /tmp/rc.local que te habrá creado.

Te pongo aquí el contenido original de /etc/rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0

Saludos.


0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://7grados.injiniero.es

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de CHuLoYo
+1
0
-1

No lo entiendo, ya está solucionado, esto último funcionó, pero lo juro que con el código en la mano antes, me borró todo lo anterior. Sin más, muchísimas gracias por tu ayuda.

Espero que también me puedas ayudar en este post:
http://www.ubuntu-es.org/index.php?q=node/108936

Con alguna idea de qué hacer. muchas gracias.

---------
www.atanes.es.vg
Inventando la frikilocura desde 1986

+1
0
-1