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

Keith Christian keith1christian@gmail.com
Wed Nov 12 20:31:00 GMT 2014


Denis,

If Excel is starting a macro in the worksheet, it might be worth
adding some logging to the visual basic code.  Perhaps try this in
your Excel macro code if that is where the processing is taking place:



'--- Set up variables near the top of your macro.
'---   (Check whether you want the macro to set the current directory
(ChDir strPath) to that of the workbook.)
strPath = ThisWorkbook.Path
ChDir strPath
strLogFilename = strPath & "\" & "loggingfile.txt"


'--- Insert this block at various areas in the macro code
'--- Helps ensure logfile isn't discarded during a hang by
'---   using "Append" mode and flushing/closing immediately after
messages is written.
Open strLogFilename For Append As #2
    strLogMessage = Now & " ---- " & "Current directory is " & strPath
Print #2, strLogMessage
Close #2



Keith


On Wed, Nov 12, 2014 at 9:20 AM, Kertz, Denis (D)** CTR **
<d.kertz@alcatel-lucent.com> wrote:
>>> 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.
>>
>> Define "runs fine" please?
>> What exactly that excel script is doing?
>
> This run.excel script simply starts up Excel with the .xls file it is given.  In this example Excel opens c:\Shared\Bin\Create_Daily_Scorecard.xls.  This .xls has a Workbook_Open macro, which is automatically run whenever this .xls is opened, that reads some data files and creates another .xls as its output.
>
> What I mean by runs fine is that when I type this command at a bash prompt:
>         run.excel  'c:\Shared\Bin\Create_Daily_Scorecard.xls'
> it runs to completion and creates a new .xls as its output.  When I run this run.excel script from a cron job it 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.
>>
>> Task manager display processes started in your current session.
>> Not processes started under your credentials. That's an important difference.
>
> Then this is just a difference between WinXP and Win7?  Under WinXP it shows EXCEL.EXE in my process list even when the "Show processes from all users" isn't checked.
>
>>> 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.
>>
>> More like you expect to run Excel interactively from service.
>> Not possible. Period.
>
> I'm not trying to run Excel interactively from a cron job.  One of the limitations with using Excel from a cron job is Excel has to run error free.  If Excel does run into some error it will typically generate an error message and wait for a user response.  Since Excel is running invisibly from a cron job, there is no user to give a response and Excel just sits there waiting for a response that will never come.
>
>>> 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.
>>
>> Of course.
>
> Why "of course"?  Shouldn't I be able to kill my own processes?  I can certainly do that under WinXP.  But this isn't a major issue for me.  I only pointed it out in case it was related to the issue why my Excel cron jobs hang.
>
> --
>> WBR,
>> Andrey Repin (anrdaemon@yandex.ru) 11.11.2014, <22:14>
>>
>> Sorry for my terrible english...
>
> Nothing wrong with your English...
>
> Denis
>
>
> --
> 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
>

--
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