[solucionado] ejecutar script al arranque (debian)

Comentarios sobre el buen funcionamiento del sistema y como personalizarlo a tus necesidades.

Moderadores: doc, mcun

Avatar de Usuario
niky45
Forista Ancestral
Forista Ancestral
Mensajes: 9186
Registrado: Jue Abr 12, 2007 7:00 am
Ubicación: tras la pantalla (...)
Contactar:

[solucionado] ejecutar script al arranque (debian)

Mensaje por niky45 » Jue Abr 15, 2010 9:49 pm

cosas raras me pasan. necesito ejecutar un script en el arranque. como root. y me niego a usar sudo.

partiendo de eso, datos:
-poniendo el script directamente en el /etc/rc.local (poniendo el script entero dentro que es cortito).... me ignora.
-poniendolo en /etc/rc2.d/script tambien me ignora.

lo que es el script funciona, si yo le digo bash /etc/rc.local, lo ejecuta sin problemas (el script crea una carpeta, y la carpeta creada es diferente cada vez, asi que se con certeza si se ha ejecutado o no. )

TODO tiene permiso de ejecucion (todos los ficheros relevantes).

ah. dos detalles:
1. en arch funciona sin problemas.
2. en TODAS las maquinas debian esta fallando (comprobado en 3, la cuarta creo que no la he encendido aun )

si alguien tiene alguna idea, se agradece. que llevo varios dias con ello.... yo me estoy oliendo algo del nuevo init (estoy con squeeze/sid), pero.... tecnicamente, el rc.local deberia ejecutarse. :?
Última edición por niky45 el Mié May 19, 2010 2:49 pm, editado 1 vez en total.
#446716
>>"Linux: the operating system with a CLUE... Command Line User Environment".
(seen in a posting in comp.software.testing)

[ DNFD ] - [ F4A ] - [ dotfiles ]
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1806
Registrado: Dom Oct 10, 2004 7:00 am

Re: ejecutar script al arranque (debian)

Mensaje por neurus » Vie Abr 16, 2010 12:11 am

Si es muy obvio, mis disculpas.
Pero en debian jamás usé un script al arranque mediante el método de las distros .rpm.

En debian, dejas el script en /etc/init.d

Te paras en /etc/init.d y ejecutas:

update-rc.d tuscript defaults 99

(99 es el último en la lista de ejecución. Puedes bajar el número si lo crees conveniente).

Para quitarlo:

update-rc.d -f tuscript remove

El nuevo init requiere los tags start/stop. Mira cualquiera de los scripts en ese directorio, es bastante claro el modo de utilización.
Avatar de Usuario
niky45
Forista Ancestral
Forista Ancestral
Mensajes: 9186
Registrado: Jue Abr 12, 2007 7:00 am
Ubicación: tras la pantalla (...)
Contactar:

Re: ejecutar script al arranque (debian)

Mensaje por niky45 » Vie Abr 16, 2010 2:56 pm

hmmm.... si, es una idea..... pero eso es mas para poner un daemon (lo que hay en el init.d son los scripts de manejo de los daemons.).
no obstante, mirare a ver si funciona.

gracias!! :)

Editado -- hace menos de un minuto --

bueno. esto es lo que pasa:

Código: Seleccionar todo

3800:/home/niky/Documents# update-rc.d baksys defaults 50
update-rc.d: using dependency based boot sequencing
insserv: warning: script 'K01baksys' missing LSB tags and overrides
insserv: warning: script is corrupt or invalid: /etc/init.d/../rc2.d/S20noip
insserv: warning: script 'baksys' missing LSB tags and overrides
insserv: warning: current stop runlevel(s) (0 1 6) of script `ntp' overwrites defaults (empty).
3800:/home/niky/Documents#
logicamente, sigue sin arrancar.

mirando por ahi, he visto estas cosas:
http://wiki.debian.org/LSBInitScripts/D ... yBasedBoot
pero yo sigo sin verlo claro.... :? no necesito nada tan complejo lo suyo seria ponerlo en el rc.local y ya. si funcionase, claro. :cry:

en fin....seguire mirando a ver que han hecho los chicos de debian con el arranque. :)
#446716
>>"Linux: the operating system with a CLUE... Command Line User Environment".
(seen in a posting in comp.software.testing)

[ DNFD ] - [ F4A ] - [ dotfiles ]
Avatar de Usuario
shakka
Forista Mayor
Forista Mayor
Mensajes: 753
Registrado: Dom Sep 18, 2005 7:00 am
Contactar:

Re: ejecutar script al arranque (debian)

Mensaje por shakka » Vie Abr 16, 2010 6:01 pm

Si lo haces como dice neurus, te falta la cabecera del daemon

http://wiki.debian.org/LSBInitScripts

Por ejemplo yo hago esto:
http://blog.mbrenes.com/?p=12&cpage=1

Saludos y no se estrese xD
blog http://blog.mbrenes.com
Avatar de Usuario
niky45
Forista Ancestral
Forista Ancestral
Mensajes: 9186
Registrado: Jue Abr 12, 2007 7:00 am
Ubicación: tras la pantalla (...)
Contactar:

Re: ejecutar script al arranque (debian)

Mensaje por niky45 » Vie Abr 16, 2010 7:19 pm

shakka escribió:Si lo haces como dice neurus, te falta la cabecera del daemon

http://wiki.debian.org/LSBInitScripts

Por ejemplo yo hago esto:
http://blog.mbrenes.com/?p=12&cpage=1

Saludos y no se estrese xD
:shock: cierto. dios, que desastre soy a veces. voy a probarlo y vuelvo.

por cierto, muchas gracias, shakka :D
Editado: ahora por lo menos el update no me ha dado error .... reinicio y vuelvo
Editado: hmmmm... creo que no funciona. peero, hoy tampoco lo puedo comprobar (el directorio creado cambia una vez al dia..... y hoy ya habia lanzado el script). no obstante, mirando el directorio, veo que la hora de modificacion es a las 16.18 , y ahora (que acabo de arracar el sistema), son las 19.20, ademas de que al proceso se lo suele ver por htop y no esta....

no obstante, maniana vengo a confirmarlo.
:)
#446716
>>"Linux: the operating system with a CLUE... Command Line User Environment".
(seen in a posting in comp.software.testing)

[ DNFD ] - [ F4A ] - [ dotfiles ]
Avatar de Usuario
mcun
Administrador
Administrador
Mensajes: 3888
Registrado: Lun Abr 19, 2010 12:30 am
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)
Contactar:

Re: ejecutar script al arranque (debian)

Mensaje por mcun » Lun Abr 19, 2010 3:44 am

Código: Seleccionar todo

vi  $HOME/.bashrc

PATH
ENV=$HOME/bashrc
USERNAME="root"
export USERNAME ENV
Aquí el código
Los programadores de verdad no documentan. La documentación es para los idiotas que no pueden leer un volcado de memoria.

Trusted Network and Developer | Lee el Reglamento !! |WIKI-EL | Twitter @mr_mcun
Debian + TTY | ArchLinux + awesome | openSUSE + Gnome-Shell | Linux User #508809
Avatar de Usuario
niky45
Forista Ancestral
Forista Ancestral
Mensajes: 9186
Registrado: Jue Abr 12, 2007 7:00 am
Ubicación: tras la pantalla (...)
Contactar:

Re: ejecutar script al arranque (debian)

Mensaje por niky45 » Lun Abr 19, 2010 10:16 pm

m[cun] escribió:

Código: Seleccionar todo

vi  $HOME/.bashrc

PATH
ENV=$HOME/bashrc
USERNAME="root"
export USERNAME ENV
Aquí el código
si y no. eso lo ejecuta cada vez que abro una consola. y me paso el dia abriendolas, asi que no. necesito que se ejecute solamente en el arranque.

y aun asi, seria mas sencillo ponerlo siplemente en el .bashrc del root.... (aunque de nuevo, no funcionaria como yo quiero, porque ha de acabar ANTES de que yo empiece a trastear).

de todas formas, gracias por la idea. :)

por cierto, confirmado, el del anterior tampoco funciona. pero gracias, shakka. :)
#446716
>>"Linux: the operating system with a CLUE... Command Line User Environment".
(seen in a posting in comp.software.testing)

[ DNFD ] - [ F4A ] - [ dotfiles ]
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1806
Registrado: Dom Oct 10, 2004 7:00 am

Re: ejecutar script al arranque (debian)

Mensaje por neurus » Mar Abr 20, 2010 6:39 am

Pero, en ese caso, el problema está en el script, no en el modo en que entra al arranque.

¿De qué servicios depende?
¿Podrías improvisar un log, redireccionando la salida hacia un archivo de texto?. Estoy seguro de que de ese modo encontrarías un esclarecedor mensaje de error.
Avatar de Usuario
niky45
Forista Ancestral
Forista Ancestral
Mensajes: 9186
Registrado: Jue Abr 12, 2007 7:00 am
Ubicación: tras la pantalla (...)
Contactar:

Re: ejecutar script al arranque (debian)

Mensaje por niky45 » Jue Abr 22, 2010 11:38 pm

neurus escribió:Pero, en ese caso, el problema está en el script, no en el modo en que entra al arranque.

¿De qué servicios depende?
¿Podrías improvisar un log, redireccionando la salida hacia un archivo de texto?. Estoy seguro de que de ese modo encontrarías un esclarecedor mensaje de error.
no depende de nada, es una simple llamada a cp. :? mi particular implementacion de las copias de seguridad......

por si acaso,copio el script:

Código: Seleccionar todo

mount /mnt/data -v
ls /mnt/data/BAKs
if [ "$?" == 0 ] ; then
        cd /mnt/data/BAKs
        DATE=`date +%d.%m.%y`
        cp / ./x3800_deb_$DATE -Rfpux &
fi
al ser el rc.local lo ultimo que se lanza:
[23:32:51] Documents $ ls /etc/rc2.d
30-baksys      S01nethack-common  S01sudo      S02dbus         S02hddtemp       S03hal   S04saned     S16nfs-common         S18stop-bootlogd
README         S01nvidia-glx      S01timidity  S02exim4        S02ntp           S03wicd  S05bootlogs  S17nfs-kernel-server  S20noip
S01baksys      S01nvidia-kernel   S02acpid     S02firestarter  S02ssh           S04cups  S05samba     S18rc.local
S01fancontrol  S01rsyslog         S02cron      S02gpm          S03avahi-daemon  S04kdm   S15portmap   S18rmnologin
[23:34:34] Documents $
(lo que no se es por que aparece por ahi como 01.... pero el que me preocupa es el del rc.local)
para cuando lanza el script, todo lo necesario esta diponible.

no obstante, hare redireccion a un fichero a ver que dice.
#446716
>>"Linux: the operating system with a CLUE... Command Line User Environment".
(seen in a posting in comp.software.testing)

[ DNFD ] - [ F4A ] - [ dotfiles ]
Avatar de Usuario
shicefgo
Forista Menor
Forista Menor
Mensajes: 53
Registrado: Lun May 10, 2010 1:00 am
Ubicación: Andalucía

Re: ejecutar script al arranque (debian)

Mensaje por shicefgo » Mié May 12, 2010 5:19 pm

Hola.
No sé si llego tarde, pero bueno, voy a dar mi opinión yo también.

Lo del /etc/init.d no es mala idea, de hecho, creo que es donde se aconseja poner estas cosas. Ahí pueden ir tanto demonios como algún script que necesite hacer algo en el arranque. Link.

Sólo hace falta decirle que no se ejecute en los niveles 0 y 6 si no tiene inicio y parada tipo demonio, y ya está.
Yo tengo en mis máquinas uno al que llamo 'ejecutar_al_inicio', y suelo poner en él cosas para establecer los permisos de alguna partición montada, una actualización via ntp de la hora del sistema... (en un cascajo antiguo que ya no tendrá ni pila pal reloj :D)

Una vez hecho el script se copia con permiso de ejecución para el root a /etc/init.d y se utiliza update-rc.d

~# update-rc.d nombreScript start 90 2 3 4 5 .

El espacio y el punto del final son necesarios (perdona si algo te parece demasiado obvio, pero no sé lo que tú sabes y, además, quién no sepa también puede aprender).
Esto ejecutará el script con prioridad 90 en los niveles 2 3 4 y 5 y yastá. Si fuese un demonio, pues habría que añadir el stop para los niveles 0 y 6 y posiblemente tener en cuenta el 1, pero un script de "ejecutar y listo" no necesita más.

Un saludo.
Avatar de Usuario
niky45
Forista Ancestral
Forista Ancestral
Mensajes: 9186
Registrado: Jue Abr 12, 2007 7:00 am
Ubicación: tras la pantalla (...)
Contactar:

Re: ejecutar script al arranque (debian)

Mensaje por niky45 » Jue May 13, 2010 7:04 pm

lo he hecho. el tema es que ahora mismo la particion de datos que es a donde van las copias me esta dando probleas, asi que no podre decir si funciona hasta que no lo solucione.

PD: no, no llegas tarde.... si lo hubiese conseguido, habria avisado. :)
#446716
>>"Linux: the operating system with a CLUE... Command Line User Environment".
(seen in a posting in comp.software.testing)

[ DNFD ] - [ F4A ] - [ dotfiles ]
Avatar de Usuario
shicefgo
Forista Menor
Forista Menor
Mensajes: 53
Registrado: Lun May 10, 2010 1:00 am
Ubicación: Andalucía

Re: ejecutar script al arranque (debian)

Mensaje por shicefgo » Mié May 19, 2010 1:58 pm

niky45, se me acaba de ocurrir: ¿Le has dado un vistazo al archivo /etc/init.d/rc.local? Ese es el script que llama al /etc/rc.local al arrancar. Mira bien que todo esté como tú lo necesitas.

Un saludo.
Avatar de Usuario
niky45
Forista Ancestral
Forista Ancestral
Mensajes: 9186
Registrado: Jue Abr 12, 2007 7:00 am
Ubicación: tras la pantalla (...)
Contactar:

Re: ejecutar script al arranque (debian)

Mensaje por niky45 » Mié May 19, 2010 2:49 pm

shicefgo escribió:niky45, se me acaba de ocurrir: ¿Le has dado un vistazo al archivo /etc/init.d/rc.local? Ese es el script que llama al /etc/rc.local al arrancar. Mira bien que todo esté como tú lo necesitas.

Un saludo.
por supuesto, esa es de las primeras cosas que mire. y segun yo, todo es corecto....

Código: Seleccionar todo

[14:12:34] Documents $ cat /etc/rc2.d/S18rc.local
#! /bin/sh
### BEGIN INIT INFO
# Provides:          rc.local
# Required-Start:    $remote_fs $syslog $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: Run /etc/rc.local if it exist
### END INIT INFO


PATH=/sbin:/usr/sbin:/bin:/usr/bin

. /lib/init/vars.sh
. /lib/lsb/init-functions

do_start() {
        if [ -x /etc/rc.local ]; then
                [ "$VERBOSE" != no ] && log_begin_msg "Running local boot scripts (/etc/rc.local)"
                /etc/rc.local
                ES=$?
                [ "$VERBOSE" != no ] && log_end_msg $ES
                return $ES
        fi
}

case "$1" in
    start)
        /etc/rc.local
        ;;
    restart|reload|force-reload)
        echo "Error: argument '$1' not supported" >&2
        exit 3
        ;;
    stop)
        ;;
    *)
        echo "Usage: $0 start|stop" >&2
        exit 3
        ;;
esac
[14:24:19] Documents $
asi es como estaba. pero se me acaba de ocurrir una idea.... vuelvo enseguida

nota: si, recuerdo que cuando lo mire llamaba a la funcion, pero como no funcionaba, intente ponerlo directamente.....

EDIT: ahora si!! el truco estaba aqui:
case "$1" in
    start)
       bash /etc/rc.local
el script tiene la sintaxis de bash, y por tanto, lo tengo que llamar con bash....

(me fastidia que bash y sh no tengan la misma sintaxis. :x )

:D

lo doy por solucionado.
#446716
>>"Linux: the operating system with a CLUE... Command Line User Environment".
(seen in a posting in comp.software.testing)

[ DNFD ] - [ F4A ] - [ dotfiles ]
Avatar de Usuario
shicefgo
Forista Menor
Forista Menor
Mensajes: 53
Registrado: Lun May 10, 2010 1:00 am
Ubicación: Andalucía

Re: [solucionado] ejecutar script al arranque (debian)

Mensaje por shicefgo » Mié May 19, 2010 8:23 pm

Bueno, es que "Debian es así".
Hace un tiempo cambiaron su shell por defecto de bash a dash (Debian Almquist shell), y sh es un enlace simbólico a la shell por defecto.
Yo también he tenido líos con eso.
Avatar de Usuario
niky45
Forista Ancestral
Forista Ancestral
Mensajes: 9186
Registrado: Jue Abr 12, 2007 7:00 am
Ubicación: tras la pantalla (...)
Contactar:

Re: [solucionado] ejecutar script al arranque (debian)

Mensaje por niky45 » Jue May 20, 2010 2:54 pm

hm. segun yo sh era otra shell independiente, y dash se usaba solo para el sistema (eso dijo aptitude.... :? )

pues si, sh es dash. (segun el man). y entonces, la shell del cd?? yo crei que ESA era sh. :| (aunque creo recordar que la llamaba tambien de otra manera).

de todas formas, el tema scripting ya me fallaba antes de lo de dash.... (supongo que porque antes la del sistema era la que tiene el cd de lenny, que es... zsh??)

:)
#446716
>>"Linux: the operating system with a CLUE... Command Line User Environment".
(seen in a posting in comp.software.testing)

[ DNFD ] - [ F4A ] - [ dotfiles ]
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje