delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2008/06/06/12:20:31

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Date: Fri, 06 Jun 2008 12:19:29 -0400
From: "Pierre A. Humblet" <Pierre DOT Humblet AT ieee DOT org>
Subject: Re: Patch to allow Cron to use non-POSIX shells like Powershell.exe and CMD.exe
To: "Blair Sutton" <blairuk AT googlemail DOT com>, <cygwin AT cygwin DOT com>
Message-id: <00da01c8c7f1$1982d6f0$d50410ac@wirelessworld.airvananet.com>
MIME-version: 1.0
X-Mailer: Microsoft Outlook Express 6.00.2900.3138
References: <2abc9c2d0806040808s2178885ak5dcf7cd528ea685a AT mail DOT gmail DOT com> <2abc9c2d0806040948l2f6dc1cbjd99bbdaea65cf181 AT mail DOT gmail DOT com> <006701c8c756$1b923260$d50410ac AT wirelessworld DOT airvananet DOT com> <2abc9c2d0806051528w6aa5c8f5g6bf946291171d579 AT mail DOT gmail DOT com> <2abc9c2d0806060116t2da2970as52d545f7a38560b7 AT mail DOT gmail DOT com>
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

----- Original Message ----- 
From: "Blair Sutton" <>
To: <cygwin>
Sent: Friday, June 06, 2008 4:16 AM
Subject: Re: Patch to allow Cron to use non-POSIX shells like Powershell.exe and CMD.exe


| On further investigation, it appears powershell does alias "-c" for
| "-command" hence no changes would be required for cron to support it.
| However, the change would still be useful for other shells or perhaps
| interpreters like Perl.
| 
| On Pierre's offered solution: I now do recall how exec works and it is
| correct that it replaces the current process - although a there will
| be some overhead. However, that begs the question why cron ever
| supported the SHELL parameter in the first place; if Mr Vixie wanted
| everyone to write a wrapper script using his preferred shell.

Here is an even simpler solution: specify the shell you want in the crontab itself
Like
* * * * *  cmd /c "some DOS stuff"
* * * * *  powershell -command "some powershell stuff"
* * * * *  bash -c "some bash stuff"

No need to specify SHELL, no wrapper shell, mix and match interpreters, maximal flexibility.
And the top shell (sh) is smart and will exec the subshell because it recognizes
that's the only thing it has to do.  
To verify that, try  
strace sh -c "cmd /C sh -c \"/bin/echo hello\"" | grep -i 'spawn\|fork' 

Pierre


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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019