iniciar un script al arrancar

Forums: 

Saludos,

Quiero iniciar un scrip cuando se prenda la maquina... Estuve leyendo aqui temas que trataban eso y lo que hice fue copiar el archivo a /etc/init.d y darle permisos de ejecucion... Pero no arranca. Cual puede ser otra opcion??? Estoy trabajando con Centos 4.4 en run level 3

Gracias

agrega una llamada al script

Imagen de Epe

agrega una llamada al script dentro de /etc/rc.local que es el ultimo script que ejecuta tu linux en cualquier runlevel

Saludos
epe
--
EcuaLinux.com
Ecuador: +(593) 9 9246504, +(593) 2 3412402
USA: +1 404 795 0321, España: +34 917617884

Saludos
epe

EcuaLinux.com

+(593) 9 9924 6504

Servicios en Software Libre

Solo hay que tener en cuenta

Imagen de antares

Solo hay que tener en cuenta con un detallito... alguna vez para un proyecto en la universidad, escribimos un proxy en C. Como nos pidieron con instalador, agregué una línea que arrancaba mi ejecutable en el script /etc/rc.local y listo, solucionado el asunto. Fue hace algunos años en un redhat 8, y lastimosamente todos eramos bastante novatos.

El problema es que después de unos días el redhat no arrancaba, siempre se quedaba iniciando el servicio local y se atrancaba largo hasta pasar. Me acostumbré a arrancar en modo interactivo, para decir que no arranque ese servicio. Pregunté a muchos profesores de la U cuál es el servicio local y nadie me daba respuesta. Luego de estar tonteando un rato me dí cuenta que el servicio local era precisamente el /etc/rc.local y que el error era ocasionado por la línea que agregó mi instalador (que dicho de paso funcionó muy bien el momento de presentar el proyecto). Creo que me demoré un par de meses en dar solución (lo que me hubiera ahorrado buscando en internet en lugar de pasar el tiempo con los profes, jeje), como era la pc de mi casa no tenía apuro. :P

Ya que estamos hablando de modificar el /etc/rc.local me pareció oportuno compartir mi experiencia que a lo mejor ilumina el camino a alguien con un problema similar al que tuve.

Saludos.

Saludos,

antares

en este caso es porque el

Imagen de Epe

en este caso es porque el programa que llamastes (tu programa en C) no estaba saliendo y poniendose en background el solito. Le agregas un & al final y ahi podría pasar... pero ahi el programa (tuyo) era el que había que ajustar,.

Saludos
epe
--
EcuaLinux.com
Ecuador: +(593) 9 9246504, +(593) 2 3412402
USA: +1 404 795 0321, España: +34 917617884

Saludos
epe

EcuaLinux.com

+(593) 9 9924 6504

Servicios en Software Libre

De hecho si se quería

Imagen de antares

De hecho si se quería hacerlo más elegante, en la programación debimos incluir la opción de correrlo como demonio, pero no lo hicimos.

Me olvide de comentar eso, gracias por acotarlo, al llamar al programa se lo debe enviar a background "a mano".

Lo que me llamó la atención es que inicialmente funcionó muy bien, luego de unas semanas se pudrió el arranque, por eso no lo asocie rápidamente con el pseudo proxy.

Luego de un tiempo entendí claramente por qué se dio el error, lo que no entiendo hasta ahora es por qué inicialmente funcionó sin pasarlo a background. :)

Saludos.

Saludos,

antares

Lo bonito de linux es que

Imagen de Epe

Lo bonito de linux es que casi nunca hay misterios, todo tiene su explicación.

En tu caso... pueden haber varias razones super comunes:

1- el programa inicialmente fallaba, por eso seguía el script
2- RedHat 8 fue una porquería, total.. quizá algo le permitía seguir
3- Quizá nunca se apagó la máquina? Y por eso no lo notaron?
4- quizá le tenían mal puesto el camino de arranque.

Alguna cosilla así es, por lo demás en efecto, al inicio es duro comprender varias cosas.. hasta que te das cuenta de lo normal, común, sencillo que es todo no? jeje

Saludos
epe
--
EcuaLinux.com
Ecuador: +(593) 9 9246504, +(593) 2 3412402
USA: +1 404 795 0321, España: +34 917617884

Saludos
epe

EcuaLinux.com

+(593) 9 9924 6504

Servicios en Software Libre

Yo le que hago es agregar un

Imagen de damage

Yo le que hago es agregar un scritp en /etc/init.d/nombe_del_script, pero para esto debes hace un script que llame al principal, ejemplos bastantes didacticos los puedes encontrar en el mismo directorio mencionado, por ejemplo si es un firewall que necesitas ejecutar mira el ejemplo que esta en /etc/init.d/iptables, estudialo y has uno en base a este, luego que lo tengas hecho puedes hacer que tu script se ejecute como servicio como por ejemplo: service firewall start y para que corra en cualquier nivel usas chkconfig --level 2345 firewall on.

Te pongo como ejemplo mi script que esta en /etc/init.d el cual llama al firewall:

#!/bin/sh
#
# Firewall Script - Version 0.9.1
#
# chkconfig: 2345 09 99 ----------> (con esto debes tener cuidado ya que este es el # orden arranque)
# description: firewall script for Linux
# Set for testing
# set -x
# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

IPTABLES="/sbin/iptables"
# See how we are called
case "$1" in

start)
# Start providing access
action "Starting firewall: " /etc/firewall/firewall.sh
echo
;;

stop)
action "Stoping firewall: "
echo 0 > /proc/sys/net/ipv4/ip_forward
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD
$IPTABLES -t nat -F
$IPTABLES -X
$IPTABLES -Z

echo
;;

restart)
action "Restarting firewall: "
$0 stop
$0 start

echo
;;

status)
# List out all settings
$IPTABLES -L
;;

test)
action "Test Mode firewall: "
$IPTABLES -nL
echo
;;

*)
echo "Usage: $0 {start|stop|restart|status|test}"
exit 1

esac

Saludos.

Keep The Fire Burning.....
Stryper 1988
http://counter.li.org/

Páginas