Can't Run Excel From A Cron Job Under Windows 7

Kertz, Denis (D)** CTR ** d.kertz@alcatel-lucent.com
Tue Nov 11 17:28:00 GMT 2014


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cygcheck.out
Type: application/octet-stream
Size: 29556 bytes
Desc: cygcheck.out
URL: <http://cygwin.com/pipermail/cygwin/attachments/20141111/b5574971/attachment.obj>
-------------- next part --------------
--
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


More information about the Cygwin mailing list