Can't Run Excel From A Cron Job Under Windows 7
Mon Dec 22 00:05:00 GMT 2014
Greetings, Kertz, Denis (D)** CTR **!
> 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.
Turned out, this has nothing to do with cygwin (predictable), and actually has
to do with how Windows (Vista+) manage services (namely: lack of access to any
GUI, unless you create one for yourself).
The issue has been discussed, for example, at serverfault.com and relevant
MSDN article is .
The solution could be to create a stub application, which will make all
necessary calls and then launch your GUI application in prepared environment.
> 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:
> cat <<-! >$vbscript
> Dim xlApp
> Set xlApp = CreateObject("Excel.application")
> Set xlWb = xlApp.workbooks.Open("$excel")
> 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':
> 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.
Andrey Repin (email@example.com) 22.12.2014, <02:37>
Sorry for my terrible english...
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin