This post originated from an RSS feed registered with Ruby Buzz
by Daniel Berger.
Original Post: Is this script being run by cron?
Feed Title: Testing 1,2,3...
Feed URL: http://djberg96.livejournal.com/data/rss
Feed Description: A blog on Ruby and other stuff.
Today I ran into a problem. I have some scripts that need certain (Oracle related) environment variables set, but only when being run under cron. The problem is that if I set them when running the code manually, the script would fail. Constantly commenting them in and out was a pain.
I decided I needed a way to detect whether or not the script is being run from the command line or from cron (or any daemon, for that matter). After thinking about it for a few minutes, it hit me - scripts run by cron won't have an associated tty. So you can do this:
if STDIN.tty?
# Assume script is run from command line
else
# Script is being run by daemon
end