Linux en Espanol
 
Ejecutar un sh al inicio (tema #24389)
Publicar nuevo tema  Responder al tema    Foros de discusión -> Estaciones de Trabajo
Autor Mensaje
cazademonios
Forista
Registrado: 2012-03-23
Mensajes: 68

Publicado: 2012-04-21 13:40:14    Asunto: Ejecutar un sh al inicio

Hola que tal
queria comentar un problema que tengo para ejecutar los sh al inicio

ese es el problema que no se me inician he probado dos metodos:

1- aplicaciones al inicio poner en comando su ruta (no funcion? :( )

2- poner el sh y dos directorios (que son donde actua el sh) en /bin/etc/init.d/ (tampoco se me ejecuta :(

3- Decir tambi?n que los ficheros tienen todos los permisos de ejecuci?n

Y eso que si alguien tiene alguna idea de como solucionar esto se lo agradecer?a mucho

Lo quiero usar por que me baje Gmote un programa que contiene un sh y dos directorios y quiero que se me abra automaticamente

gracias un saludo 8)
rafaxdrake
Forista


Registrado: 2004-02-21
Mensajes: 3928

Publicado: 2012-04-21 17:23:00    Asunto:

Puedes a?adir los scripts en /etc/rc.local aunque seguro que hay mejor m?todo.
miguelgf
Forista


Registrado: 2006-12-28
Mensajes: 621

Publicado: 2012-04-21 17:30:57    Asunto: Re: Ejecutar un sh al inicio

Hola.[quote:791296da9e="cazademonios"]ejecutar los sh al inicio
...
...
Lo quiero usar por que me baje Gmote un programa que contiene un sh y dos directorios y quiero que se me abra automaticamente
[/quote:791296da9e]
Supongo que lo que quieres es que se ejecuten, no al arrancar el sistema, sino al abrir sesi?n as? que me centrar? un poco m?as en eso.
[quote:791296da9e="cazademonios"]3- Decir tambi?n que los ficheros tienen todos los permisos de ejecuci?n[/quote:791296da9e]
Perfecto. Ese suele ser un fallo de principiantes ... y de no tan principiantes (a m? me sigue pasando despu?s de a?os) :oops:
De todos modos, siempre que pongas una llamada a un script en alg?n fichero de configuraci?n, recuerda ponerlo con su ruta completa, incluso si est? en /bin o alg?n sitio as?, ya que no sabes si la variable PATH estar? cargada en el momento de ejecuci?n.
[quote:791296da9e="cazademonios"]2- poner el sh y dos directorios (que son donde actua el sh) en /bin/etc/init.d/ [/quote:791296da9e]
Este es el m?todo para poner "servicios", es decir programas que se ejecutan al arrancar el equipo y no al iniciar sesi?n un usuario. Es decir si arrancas el equipo se inician. Luego te conectas t? y ya est? iniciado. Mientras tienes la sesi?n abierta, abre sesi?n tu hermano por ejemplo, y el programa sigue arrancado. En general los servicios no son interactivos ya que arrancan antes de que ning?n usuario abra su sesi?n. El propio gestor de sesiones es un servicio.
Esto no es lo que necesitas, pero ya que estamos, te explico: los servicios deben estar definidos en /etc/init.d, pero eso no provoca su arranque autom?tico, eso s?lo hace que el sistema conozca su existencia. Para que los arranque, en /etc/rcX.d, con X=0, 1, 2...6, debe haber dos enlaces simb?licos al script, cuyos nombres comienzan por "S" de "start" y por "K" de "kill" para arrancar y parar respectivamente.
Los enlaces se pueden crear a mano, con "chkconfig", con "service", con "eselect", etc., depende de la distro.
Tambi?n depende de la distro que los directorios mencionados sean /etc/rcX.d o /etc/init.d/rcX.d o parecido.
Si quieres saber m?s de esto, busca en Internet acerca de "runlevel".
[quote:791296da9e="cazademonios"]
aplicaciones al inicio poner en comando su ruta (no funcion?
[/quote:791296da9e]No s? donde es ese "inicio" del que hablas porque no concretas cual es el entorno de escritorio que usas, pero te comento m?s cosas:
1.- Puedes poner la llamada al script en $HOME/.bashrc
En este caso se ejecutar? cada vez que abras una consola "bash" con xterm, konsole, o el que uses. Si abres 7 consolas to lo ejecutar?a 7 veces, por lo que no creo que sea el sitio para poner lo que t? buscas.
2.- El gestor de escritorio que uses (gnome, kde, xfce, etc) deber?a tener un sitio de su configuraci?n en el que poner lo que quieres que se arranque al abrir sesi?n. Yo s?lo lo he hecho en dos casos:
2.1.- En KDE est? en preferencias-->preferencias del sistema-->Arranque y apagado (en la pesta?a Administraci?n del sistema) --> Autoarranque
En realidad con esto lo que haces es editar el contenido de los directorios $HOME/.kde(o kde4)/autostart, $HOME/.kde4/env y $HOME/.kde4/shutdown
Nunca los he usado, pero la pantalla de configuraci?n tiene ayuda.
2.2.- En FVWM2 se edita el fichero $HOME/.fvwm/config para ponerle:[code:1:791296da9e]
DestroyFunc InitFunction
AddToFunc StartFunction
+ I Exec $HOME/bin/tuscript.sh[/code:1:791296da9e]
En gnome, lxde, etc., debe haber algo parecido a lo de KDE, pero nunca lo he usado y no puedo ayudarte.
Seguramente alg?n otro forero aporte algo sobre esos entornos.

Saludos.
cazademonios
Forista
Registrado: 2012-03-23
Mensajes: 68

Publicado: 2012-04-22 01:43:56    Asunto:

Hola gracias por responder tan detalladamente y tan rapidamente pues la versi?n que uso es la gnome 2.0
y lo que no me ha quedado claro es que donde coloco el script y los ficheros por que dices que en etc/rc1 2 3 ....
pero no se en que carpeta de ellas :(

bueno gracias de todos modos un saludo 8)
miguelgf
Forista


Registrado: 2006-12-28
Mensajes: 621

Publicado: 2012-04-22 03:31:54    Asunto:

Hola.[quote:c49f204d58="cazademonios"]la versi?n que uso es la gnome 2.0[/quote:c49f204d58]
Nunca he usado gnome, en eso no puedo ayudarte.
[quote:c49f204d58="cazademonios"]y lo que no me ha quedado claro es que donde coloco el script y los ficheros por que dices que en etc/rc1 2 3 ....
pero no se en que carpeta de ellas [/quote:c49f204d58]
rc0.d, rc1.d, etc corresponden respectivamente a los runlevels 0, 1, 2, etc.
Por eso te dije que leyeras sobre runlevel en Internet.
B?sicamente se trata de los siguiente: existen distintos niveles de arranque en una m?quina linux y son:
0.- Es especial. El runlevel 0 es apagar la m?quina
1.- En este nivel la m?quina arranca en modo monousuario. Es el nivel normal de arranque cuando hay un problema grave y se requiere la intervenci?n de root sirectamente en la consola f?sica de la m?quina.
2.- El runlevel 2 no suele usarse. Realmente nunca vi una m?quina que lo tuviera.
3.- El 3 es arranque en modo multiusuario con las funciones de red activas. Es el modo de arranque normal de un servidor.
4.- Este es como el 2, un desconocido que nadie suele usar
5.- Es como el 3 pero adem?s levanta los servicios gr?ficos (el x-windows, el gestor de escritorio, etc.). Es el nivel normal de los equipos de usuarios.
6.- Es especial. Este runlevel es reiniciar la m?quina
Puedes probar a jugar con los runlevel con los comandos runlevel e init.
"runlevel" te dir? el runlevel actual y el anterior.
"init X" cambiar? al runlevel X. Para ejecutarlo debes ser root
Puedes probar a hacer init 3 y ver?s c?mo desaparece todo tu entorno gr?fico y te quedas s?lo con la consola. Luego haces init 5 y el entorno gr?fico arrancar? de nuevo.
Por cierto si vas a probar, graba lo que tengas abierto en procesadores de texto, etc, porque "init 3" cierra el entorno gr?fico inmediatamente y sin preguntar si quieres grabar.

Tu pones tus scripts en los directorios rcX.d de los runlevels que te interesen.
Si tu script lanza una aplicaci?n gr?fica, como sospecho, s?lo deber?as ponerlo en el runlevel 5. Si tu script lanza un demonio sin interfaz gr?fica ponlo en los runlevel 3 y 5.
De todos modos si lanza una ventana, al intentar hacerlo antes de que el usuario abra sesi?n, creo que dar? un error y se cancelar?.

Lo que realmente necesitas es encontrar lo que te cont? antes de kde y fvwm2, pero para gnome. Espera un poco a ver si alguien de aqu? lo sabe y si nadie te contesta aqu?, prueba en un foro de gnome directamente.

Saludos.
cazademonios
Forista
Registrado: 2012-03-23
Mensajes: 68

Publicado: 2012-04-22 13:12:53    Asunto:

No entiendo demasiado lo de los runlevels no soy tan avanzado ni mucho menos no se en cual meter el sh para que se inicie al inicio

lo del entorno grafico no creo que sea muy diferente de gnome a otro pero aqui te dejo una captura

[URL=http://img859.imageshack.us/img859/7004/gmote.png][img:87e16fe049]http://img859.imageshack.us/img859/7004/gmote.png[/img:87e16fe049][/URL]

Prob? poniendo solo la ruta sin el sh pero no va de ninguno de los metodos

[en los programas instalados si me funciona poner la ruta en el sh no :( )
cazademonios
Forista
Registrado: 2012-03-23
Mensajes: 68

Publicado: 2012-04-22 13:40:32    Asunto:

me fije que con el comando sh no funcionan las rutas absolutas al menos con mi sh

asi que puse tambien en aplicaciones al inicio

cd /home/usuario/gmote2.0.0 ; sh GmoteServer.sh

en modo comando me funcion? pero al ponerlo en aplicaciones al inicio no me funciona ya no se que hacer :(

para una cosa tan sencilla lo que hay que saber jeje
rafaxdrake
Forista


Registrado: 2004-02-21
Mensajes: 3928

Publicado: 2012-04-22 21:56:59    Asunto:

Cazademonios, Miguel te ha dado la mejor explicaci?n que podr?s encontrar ahora mismo en internet. Despu?s de la suya, encontrar?s estas explicaciones en una universidad o en un buen libro. Tienes que leerlas tranquilamente e intentar comprenderlo y no centrarte absolutamente en tu problema. Lo que te ha explicado miguel es que hay 2 tipos de servicios: los del sistema y los del entorno gr?fico que est?s usando, que son dos cosas completamente distintas y separadas en un entorno unix. Parece ser que t? lo que necesitas es que arranque algo cuando se te abre el entorno gr?fico, pues esto lo tienes que configurar en el centro de control del entorno de escritorio/gestor de ventanas que est?s usando. O bien leerte la documentaci?n del entorno gr?fico que est?s usando, ah? te dir? c?mo se arrancan los servicios en ese entorno, pero recuerda que esos servicios no tienen nada que ver con los del sistema.

Para comprender esto tienes que leer lo siguiente:

http://es.wikipedia.org/wiki/Sistema_operativo
http://es.wikipedia.org/wiki/Distribuci%C3%B3n_GNU/Linux
http://es.wikipedia.org/wiki/Entorno_de_escritorio
http://es.wikipedia.org/wiki/Gestor_de_ventanas
rafaxdrake
Forista


Registrado: 2004-02-21
Mensajes: 3928

Publicado: 2012-04-22 22:02:08    Asunto:

Veo en la imagen que pusiste arriba que est?s poniendo mal la ruta. Ay?date si acaso con la pesta?a de buscar. Recuerda que si pones la ruta manualmente a unix no le gusta que haya espacios, por lo que deber?s encomillar adecuadamente, quiz?s la pesta?a de buscar el script haga esto por ti. ej: '/home/juan/mis documentos/script' (f?jate en las comillas simples)
miguelgf
Forista


Registrado: 2006-12-28
Mensajes: 621

Publicado: 2012-04-22 22:46:43    Asunto:

Hola.[quote:b07d4c9e3c="cazademonios"]cd /home/usuario/gmote2.0.0 ; sh GmoteServer.sh[/quote:b07d4c9e3c]
?Has probado
[code:1:b07d4c9e3c]/home/usuario/gmote2.0.0/GmoteServer.sh[/code:1:b07d4c9e3c]
?

?Puedes poner el resultado del comando
[code:1:b07d4c9e3c]ls -l /home/usuario/gmote2.0.0/GmoteServer.sh[/code:1:b07d4c9e3c]
en el foro?

Saludos.
cazademonios
Forista
Registrado: 2012-03-23
Mensajes: 68

Publicado: 2012-04-23 14:15:20    Asunto:

[quote:28cadfd9b0="miguelgf"]Hola.[quote:28cadfd9b0="cazademonios"]cd /home/usuario/gmote2.0.0 ; sh GmoteServer.sh[/quote:28cadfd9b0]
?Has probado
[code:1:28cadfd9b0]/home/usuario/gmote2.0.0/GmoteServer.sh[/code:1:28cadfd9b0]
?

?Puedes poner el resultado del comando
[code:1:28cadfd9b0]ls -l /home/usuario/gmote2.0.0/GmoteServer.sh[/code:1:28cadfd9b0]
en el foro?

Saludos.[/quote:28cadfd9b0]

efectivamente he probado la ruta absoluta
[code:1:28cadfd9b0]/home/usuario/gmote2.0.0/GmoteServer.sh[/code:1:28cadfd9b0]
como ya dije y no funciona (en programas si pero en sh no)

luego prob? con sh al inicio como muestra la imagen por si necesitaba esa orden pero tampoco funcion?

lo de poner ; lo hago por que en mi linux para abrir un sh necesito usar rutas relativas desconozco el por que por eso puse en el comando
cd /[ruta] ; sh [archivo]
funciona en terminal pero cuando lo pongo en aplicaciones al inicio no

decir a rafaxdrake que el espacio es por el comando que puse sh pero que tambien lo he probado sin sh y con la opci?n de buscar y no dio resultado

pues le preguntar? a mi profesor de informatica por que no se ni hacerlo por archivo ni por entorno gr?fico


gracias de todos modos por el tiempo y los consejos aprendi mas o menos los niveles de autorun cuando lo veamos en clase ya sabr? mas
un saludo 8)
cazademonios
Forista
Registrado: 2012-03-23
Mensajes: 68

Publicado: 2012-04-23 15:09:50    Asunto:

para mas informacion una captura de todos mis intentos en aplicaciones al inicio de gnome que es similar a cualquier entorno

[URL=http://img837.imageshack.us/img837/497/gmotehastaenlasopa.png][img:f74b5e2ee9]http://img837.imageshack.us/img837/497/gmotehastaenlasopa.png[/img:f74b5e2ee9][/URL]
rafaxdrake
Forista


Registrado: 2004-02-21
Mensajes: 3928

Publicado: 2012-04-23 16:52:49    Asunto:

Quiz?s podr?as ayudarte mirando c?mo est? montado para que se ejecute el script del gestor de red.
cazademonios
Forista
Registrado: 2012-03-23
Mensajes: 68

Publicado: 2012-04-23 18:50:34    Asunto:

[quote:c8231c172f="rafaxdrake"]Quiz?s podr?as ayudarte mirando c?mo est? montado para que se ejecute el script del gestor de red.[/quote:c8231c172f]
creo que no es un scrip

? nadie a puesto un sh al inicio nunca ?
TheBalrog
BOFH
Registrado: 2004-04-05
Mensajes: 3012

Publicado: 2012-04-23 19:35:46    Asunto:

[quote:fb00621387="cazademonios"][quote:fb00621387="rafaxdrake"]Quiz?s podr?as ayudarte mirando c?mo est? montado para que se ejecute el script del gestor de red.[/quote:fb00621387]
creo que no es un scrip

? nadie a puesto un sh al inicio nunca ?[/quote:fb00621387]

scrip no creo que sea, nadie nunca ha puesto algo as?. Script s? que lo es.

?Haz revisado ac?? http://tldp.org/LDP/abs/html/sample-bashrc.html. Si no tienes claro lo que se menciona entonces te sugiero que no te desesperes y leas, mucho.

Despu?s de que se han ejecutado los scripts iniciales, se ejecutan aquellos contenidos en rc.local. Su ubicaci?n depende de la distribuci?n.

Honestamente no he tenido suficiente tiempo de leer el post completo as? que probablemente ya te hab?an comentado esto. Si es as?, omite mi respuesta.
miguelgf
Forista


Registrado: 2006-12-28
Mensajes: 621

Publicado: 2012-04-23 23:00:21    Asunto:

Hola.

Vayamos por partes:
1.- S? es un script. En concreto el contenido es:
[code:1:ccf4a0e33c]echo "Starting GmoteServer 2.0 ... "
java -classpath bin:lib/jna.jar:lib/slf4j-api-1.5.3.jar:lib/swing-worker-1.2.jar org.gmote.server.GmoteServerUiLinux &
echo "GmoteServer started."[/code:1:ccf4a0e33c]
2.- Salvo que tengas alguna distro un poco "rara", sh s?lo es un link a bash. Mira en tu distro en qu? directorio est? bash. Lo normal es que est? en /bin. Puedes mirarlo con
[code:1:ccf4a0e33c]whereis bash[/code:1:ccf4a0e33c]
Que no encuentras bash, mira a ver donde est? sh, que lo normal tambi?n es que est? en /bin
[code:1:ccf4a0e33c]whereis sh[/code:1:ccf4a0e33c]
3.- El script es err?neo. Lo primero que debe tener un script es la l?nea de comentario "especial" que indica cual es el int?rprete de comandos que debe encargarse de interpretarlo. Por tanto edita el script con tu editor favorito y a?ade como primera l?nea del script
[code:1:ccf4a0e33c]#!/bin/bash[/code:1:ccf4a0e33c]
Evidentemente si encontraste que el directorio no era /bin o finalmente es de veras sh y no bash, pon el valor apropiado.
Esta l?nea [b:ccf4a0e33c]debe ser la primera[/b:ccf4a0e33c] del script. no puede tener delante otras l?neas, ni l?neas de comentario, ninguna. Tampoco debe tener ni un s?lo espacio entre "#!" y "/bin/bash"
4.- Aunque lo tendr?s en el PATH, yo editar?a la l?nea java y le pondr?a la ruta completa. Para saber donde est? realmente el java:
[code:1:ccf4a0e33c]whereis java[/code:1:ccf4a0e33c]
Lo normal es /usr/bin/java, pero no necesariamente.
5.- Si el programa necesita que el directorio activo sea el de la instalaci?n, no lo intentes poner en la ventana gr?fica de configuraci?n, ponlo en el script, en la l?nea antes de llamar al java:
[code:1:ccf4a0e33c]cd /home/usuario/gmote2.0.0/[/code:1:ccf4a0e33c]
6.- Una vez hecho eso, yo insisto en que si desde una consola abierta funciona
[code:1:ccf4a0e33c]/home/usuario/gmote2.0.0/GmoteServer.sh[/code:1:ccf4a0e33c]
pero sin poner sh delante, poni?ndolo en la ventana de configuraci?n de inicio tambi?n deber?a funcionar.
7.- Si las pruebas fallan, puede ser un problema del java, que le falten por inicializar una o diez mil variables de entorno. Haz copia de seguridad del script y cambia la llamada a java por alguna aplicaci?n sencillita del sistema, como la calculadora por ejemplo. Para probar es mejor que java. Si es capaz de arrancar la calculadora autom?ticamente pero no el java es que parte de las variables de entorno que tu tienes en tu consola normalmente no est?n definidas en el momento de llamada autom?tica al script. Eso se resuelve defini?ndolas dentro del propio script antes de llamar al java.

A ver si con esto hay suerte y te funciona.

Saludos.
cazademonios
Forista
Registrado: 2012-03-23
Mensajes: 68

Publicado: 2012-04-25 12:00:58    Asunto:

por lo que se de informatica que es poco si
creo que da igual como sea el sh si se abre correctamente de forma manual deber?a tambien de forma automatica no creo necesario cambiar su codigo

aun asi lo he cambiado y ha seguido sin ir :(





La marca registrada Linux (R) se usa siguiendo la sublicensia obtenida del "Linux Mark Institute",
el LICENCIATARIO exclusivo de Linus Torvalds, propietario de la marca en EEUU y otros países
The registered trademark Linux (R) is used pursuant to a sublicense from the Linux Mark Institute,
the exclusive LICENSEE of Linus Torvalds, owner of the mark in the U.S. and other countries