I am trying to port a cygwin application that uses cron from a WinXP PC to a 
Win7 Pro PC and I find some cron jobs won't run.  Specifically, I need to run 
an Excel program from a cron job and this doesn't work on my Win7 PC.

In order to run an Excel program from cygwin I have this run.excel bash script 
with an embedded VB script that executes an Excel program:

        excel=$1
        vbscript=/usr/tmp/$$.vbs
        cat <<-! >$vbscript
                        Dim xlApp
                        Set xlApp = CreateObject("Excel.application")
                        Set xlWb = xlApp.workbooks.Open("$excel")
                        xlApp.Quit
                        Set xlWb = Nothing
                        Set xlApp = Nothing
        !
        chmod 777  $vbscript
        c:/Windows/System32/wscript.exe  'c:\cygwin64\usr\tmp\$$.vbs'

An excel program is run like this:

        run.excel  'c:\Shared\Bin\Create_Daily_Scorecard.xls'

When I run an Excel program interactively with this run.excel script it runs 
just fine but when I run it via a cron job Excel just hangs.  When Excel hangs 
I can look at the processes running on the PC using the Windows Task Manager 
and I don't see the EXCEL.EXE process.  But when I check the option to show 
processes from all users I see the hung EXCEL.EXE process, AND the user name 
displayed is my login.  So I am running this under the Upar2 login and Task 
Manager doesn't display EXCEL.EXE as a Upar2 process but when I check 'Show 
processes from all users' it shows EXCEL.EXE running under user name Upar2 - a 
contradiction.

What I suspect is happening is Excel is attempting to do something that 
requires Upar2 permission but it isn't really running as Upar2 so Excel 
displays some error message and is waiting for the user to respond.  But Excel 
is running invisibly so this can't be seen.

I also suspect this Upar2 "confusion" isn't limited to running an Excel 
program.  I can run a cron job with regular UNIX commands (cut, sort, etc) and 
see they are running with the ps command.  But when I try to kill them (kill 
-9) I get permission denied.  If I want to kill a process running via the cron 
I have to start cygwin with 'Run as administrator' and then I can kill 
processes running under the cron.

So, does anyone know what's going on here and what I need to do get these cron 
jobs running.  As I noted at the beginning this is being ported from WinXP, 
where all this works fine, to Win7.

I set up cron using cron-config like this:

$ cron-config
Do you want to install the cron daemon as a service? (yes/no) yes
Enter the value of CYGWIN for the daemon: [ ]

Do you want the cron daemon to run as yourself? (yes/no) yes

Please enter the password for user 'Upar2':
Reenter:
Running cron_diagnose ...
... no problem found.

Do you want to start the cron daemon as a service now? (yes/no) yes
OK. The cron daemon is now running.

Denis

Attachment: cygcheck.out
Description: cygcheck.out

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

Reply via email to