Archive for the ‘Solaris’ Category

Linux debe ser reiniciado solo por un cambio en el hardware

lunes, octubre 8th, 2012

Debo admitir que ciertamente defiendo Linux como sistema operativo de servidores. Como desktop aún le falta (aun cuando ubuntu a avanzado años luz), como servidor… debo admitir que admiro esta situación de configurar archivos.

Con el amor propio herido debido a que tras un reinicio de un servidor Linux que fue aumentado en RAM, Oracle no funcionaba decidí reiniciar debido a que no se me ocurrían más cosas para hacerlo partir… pero no estaba todo dicho… sobre todo luego de un comentario “…o sea, que igual que Windows tienes que reiniciar” (Julio Romero)… frase que fue (en buen chileno) como un ají ahí mismito…

Así que luego la decisión fue no claudicar… no puede ser el reinicio, no puede ser que Linux deba ser reiniciado, pero por sobretodo no se puede rebajar a ser igualado a windows.

Aun cuando efectivamente existen parches en el Kernel que ameritan reinicio, la mayoría o los reinicios justificados en Linux sólo debiesen ser de hardware, ya que para todo lo demás existe un archivo de configuración que si esta mal «seteado» la aplicación no funcionará.

En mi caso, Oracle finalmente inicio, luego de hacer un serie de pasos para que esto sucediera.

Añadir un usuario existente a un grupo en Unix

miércoles, septiembre 26th, 2012

Cuando ya existente se debe utilizar el comando usermod de la siguiente forma

# usermod -G nombre_grupo nombre_usuario

a más de un grupo

# usermod -G nombre_grupo_1,nombre_grupo_2 nombre_usuario

Instalar JBoss como servicio en Solaris

sábado, noviembre 26th, 2011

Existe en Solaris una forma de configurar un servicio a través de generar un script y crear un archivo XML para la configuracion del servicio.

Encontre en este sitio una explicación de los servicios y del comportamiento de los servicios. En el esta explicado como hacerlo para JBoss 5.x, pero en mi caso tuve que hacer modificaciones para JBoss 4.2.3.GA.

Primero crea un script llamado jboss

#!/sbin/sh

. /lib/svc/share/smf_include.sh

getproparg() {
	val=`svcprop -p ${1} ${SMF_FMRI}`
	[ -n "$val" ] && echo $val
}

if [ -z ${SMF_FMRI} ]; then
	echo "SMF framework variables are not initialized."
	exit ${SMF_EXIT_ERR}
fi

METHOD=${1}	# %m	(start/stop)
INSTANCE=${2}	# %i	(instance name)

# read other properties...
JBOSS_USER=root
JBOSS_HOME=/usr/local/jboss-4.2.3.GA
JBOSS_HOST=`getproparg instance/host`
JBOSS_PROFILE=${INSTANCE}
JBOSS_PARTITION=`getproparg instance/partition`
JBOSS_UDP_ADDRESS=`getproparg instance/udp_address`
JBOSS_UDP_PORT=`getproparg instance/udp_port`
JBOSS_PROP=`getproparg instance/properties`
JBOSS_EXTRA_OPTS=

if [ -z ${JBOSS_HOME} ]; then
	echo "jboss/home property not set"
	exit ${SMF_EXIT_ERR_CONFIG}
fi

if [ ! -z ${JBOSS_PARTITION} ]; then
	JBOSS_EXTRA_OPTS="${JBOSS_EXTRA_OPTS} -g ${JBOSS_PARTITION}"
fi

if [ ! -z ${JBOSS_UDP_ADDRESS} ]; then
	JBOSS_EXTRA_OPTS="${JBOSS_EXTRA_OPTS} -u ${JBOSS_UDP_ADDRESS}"
fi

if [ ! -z ${JBOSS_UDP_PORT} ]; then
	JBOSS_EXTRA_OPTS="${JBOSS_EXTRA_OPTS} -m ${JBOSS_UDP_PORT}"
fi

if [ ! -z ${JBOSS_PROP} ]; then
	JBOSS_EXTRA_OPTS="${JBOSS_EXTRA_OPTS} -D${JBOSS_PROP}"
fi

if [ ! -d ${JBOSS_HOME}/server/${JBOSS_PROFILE} ]; then
	echo "jboss/profile ${JBOSS_PROFILE} not found"
	exit ${SMF_EXIT_ERR_CONFIG}
fi

case "${METHOD}" in
'start')
	su ${JBOSS_USER} -c "${JBOSS_HOME}/bin/run.sh -c ${JBOSS_PROFILE} -b ${JBOSS_HOST}" ${JBOSS_EXTRA_OPTS} &
	;;

'stop')
	su ${JBOSS_USER} -c "${JBOSS_HOME}/bin/shutdown.sh -S"
	;;

*)
	echo "Usage: ${0} {start|stop}"
	exit 1
	;;
esac

exit ${SMF_EXIT_OK}

De esto lo más importante es el usuario y la ruta de JBoss, en general, como en casi cualquier sistema operativo es mejor crear un usuario para el servicio, en este caso jboss, aqui esta establecido el root directamente, lo que podría ser una falla de seguridad.

Este debe copiarse

cp jboss /lib/svc/method/
chmod +x /lib/svc/method/jboss

Luego debe crearse un XML para inciar el serivio, el del sitio original, yo lo modifique para JBoss-4.2.3.GA, las diferencias son que en la carpeta server las aplicacione son all, minimal y default, en cambio en JBoss 5.x son más.

El XML sería entonces






    

        
        
            
        

        
        
            
        


        

        

        
        
            
            
        

        
        
            
                
                
                
                
                
            
        
        
            
                
                
                
                
                
            
        
        
            
                
                
                
                
                
            
        

        

        

    


Luego de crearlo debes incorporarlo como servicio a través del siguiente comando

svccfg import jboss.xml

Para aplicar la configuracion de multicast debes cambiar las propiedades a través del siguiente comando

svccfg -s svc:/application/jboss:default setprop instance/host=0.0.0.0
svcadm refresh jboss:default

Luego de lo cual puedes aplicar el comando para inciar (y habilitar)

svcadm restart jboss:default

Para reiniciar

svcadm restart jboss:default

O para detener

svcadm restart jboss:default