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?