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.
For posterity: 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[1] and relevant MSDN article is [2]. The solution could be to create a stub application, which will make all necessary calls and then launch your GUI application in prepared environment. [1] http://serverfault.com/questions/101671/scheduled-tasks-w-gui-issue [2] http://msdn.microsoft.com/en-us/library/ms687105(VS.85).aspx > 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 -- WBR, Andrey Repin (anrdae...@yandex.ru) 22.12.2014, <02:37> Sorry for my terrible english... -- 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