Programa como servicio
Posted: Fri Mar 23, 2007 3:31 pm
Buenas, una duda acerca de hacer funcionar un programa como servicio.
He creado el programa, lo he instalado como servicio con el srvany y le he puesto las funciones :
//------------------------------
Function ServiceProcess( mode )
//------------------------------
Local nProcessId := 0
Default mode := 0
nProcessId := GCP( )
If Abs( nProcessId ) > 0
RSProcess( nProcessId, mode )
Endif
RETURN
//----------------------------------------------------
DLL32 FUNCTION RSProcess(npID AS LONG ,;
nMode AS LONG ) AS LONG ;
FROM "RegisterServiceProcess" LIB "kernel32.DLL"
//----------------------------------------------------
//----------------------------------------------------
DLL32 FUNCTION GCP() AS LONG;
FROM "GetCurrentProcessId" LIB "kernel32.dll"
//----------------------------------------------------
Llamando al principio de la aplicación :
ServiceProcess(1)
Y hasta aqui todo bien, voy a servicios y le doy a iniciar servicio, la aplicación se ejecuta (voy creando un fichero log con diversos controles y se crea), pero no se queda funcionando, al final windows me arroja el error 1053 : El servicio no ha respondido a la petición o inicio del control en un tiempo adecuado.
Lo estoy probando en windows 2003 server, se trata de un servicio de backup en segundo plano y necesito que se ejecute sin que nadie ejecute la sesión.
Gracias anticipadas.
He creado el programa, lo he instalado como servicio con el srvany y le he puesto las funciones :
//------------------------------
Function ServiceProcess( mode )
//------------------------------
Local nProcessId := 0
Default mode := 0
nProcessId := GCP( )
If Abs( nProcessId ) > 0
RSProcess( nProcessId, mode )
Endif
RETURN
//----------------------------------------------------
DLL32 FUNCTION RSProcess(npID AS LONG ,;
nMode AS LONG ) AS LONG ;
FROM "RegisterServiceProcess" LIB "kernel32.DLL"
//----------------------------------------------------
//----------------------------------------------------
DLL32 FUNCTION GCP() AS LONG;
FROM "GetCurrentProcessId" LIB "kernel32.dll"
//----------------------------------------------------
Llamando al principio de la aplicación :
ServiceProcess(1)
Y hasta aqui todo bien, voy a servicios y le doy a iniciar servicio, la aplicación se ejecuta (voy creando un fichero log con diversos controles y se crea), pero no se queda funcionando, al final windows me arroja el error 1053 : El servicio no ha respondido a la petición o inicio del control en un tiempo adecuado.
Lo estoy probando en windows 2003 server, se trata de un servicio de backup en segundo plano y necesito que se ejecute sin que nadie ejecute la sesión.
Gracias anticipadas.