Buen dia a todos y saludos¡
Continuando con el desarrollo y basandome en el servicio desarrollado por Escafranda
Surguieron algunas dudas, consultas y varios aprendizajes ...
Como el servicio se ejecuta con el usuario System, las demas aplicaciones tambien son ejecutadas como System
en este caso el servicio llama a un Launcher.exe que el cual se programan las copias de seguridad, el cual llama a Copias.exe de acuerdo al dia y hora programado.
El tema es que Copias.exe usa el siguiente comando y parametro
ComandoUno:=('c:\copias\bin\rsync --log-file=/cygdrive/c/copias/log/usuario_data.log --progress -avzPe /cygdrive/c/copias/bin/ssh.exe -l usuario -i | /cygdrive/c/Documents\ and\ Settings/usuario/.ssh/known_hosts o + path + |
/cygdrive/c/origen/data/ xxx.xxx.xxx.xxx:/home/usuario/destino/data );
y como no es usuario logeado, busca el archivo (known_hosts) en otro directorio como indica la imagen (ssh.jpeg)
A path " /cygdrive/c/Documents\ and\ Settings/usuario/.ssh/known_hosts" lo leo y armo con
path:=('c:'+GetEnvironmentVariable('HOMEPATH')+'\.ssh\known_hosts') que cuando es ejecutado por el usuario logueado muestra
el path completo, y ejecuta el programa como corresponde, no asi con el usuario System que no muestra nada, tampoco el archivo
known_hosts
Y bueno como siempre cualquier sugerencia, orientacion y comentario es siempre bienvenido
muchas gracias desde ya ...
saludos¡