test if script called by cron

Dan Nelson dnelson at allantgroup.com
Mon Sep 16 12:17:18 UTC 2013

In the last episode (Sep 16), Paul Macdonald said:
> Is there a simple way of testing whether a given script was called via cron,
> I'd rather find a solution that would work from within the script rather 
> than setting an environment variable in the crontab.

You check to see if stdin is a terminal, but that's not conclusive.  One way
to know for sure is to look at the name of the process that launched you:

if [ ! -t 0 ] ; then
 echo "no tty, possibly run from cron"

parent=$(ps -o command= -p $PPID)
case $parent in 
 *cron* ) echo "parent is $parent, almost certainly cron" ;;

	Dan Nelson
	dnelson at allantgroup.com

More information about the freebsd-questions mailing list