Levanatar procesos en /etc/inittab con usuario non root

Levante de procesos desde el /etc/inittab con el usuario oracle:

Forma 1)

1. Genero un archivo rc. en el directorio /etc

# vi /etc/rc.oracle

su - oracle <<EOF

/opt/app/oracle/product/10.2.0/http/opmn/bin/opmnctl startall

EOF

En este caso me apersono en el usuario oracle y levanto los servicios de APEX[1].

2. Le doy permisos de ejecución

# chmod +x /etc/rc.oracle

3. Registro una nueva entrada el archivo init

# /usr/sbin/mkitab "informesprd:23456789:once:/etc/rc.oracle > /dev/console 2>&1"

4. Confirmo el registro

# /usr/sbin/lsitab -a |grep informes

#informesprd:23456789:once:/opt/app/oracle/product/10.2.0/http/Apache/Apache/bin/apachectl start > #/dev/console 2>&1 #Modulo de informes de Produccion

informesprd:23456789:once:/etc/rc.oracle > /dev/console 2>&1

Nota: El caso que exista un anterior (el que levantaba PIDs de root) se comenta.

Forma 2)

La otra seria un registro directo en el archivo init:

# /usr/sbin/mkitab "informesprd:23456789:once:/usr/bin/su - oracle "-c /opt/app/oracle/product/10.2.0/http/Apache/Apache/bin/apachectl start" > /dev/null 2>&1"

Ambas forma me funcionaron en las pruebas, pero me pace "más prolija" la primer forma, queda a criterio del sysadmin.

Nota: Formato del archivo inittab

Identificador:runlevel:comportamiento:comando

e.g:

webserverstart:2:once:startsrc -s http4websm >/dev/null 2>&1

[1] ¿Que es APEX?