You can't request more than 20 challenges without solving them. Your previous challenges were flushed.

Unix Tip: Am I being run by cron?

December 7, 2004, 02:48 PM —  ITworld.com — 

Send your Unix questions today!


See additional Unix tips and tricks


Have you ever wanted to force a script to act differently when it
is invoked by cron? If the script is run interactively, for example,
you might want the script to prompt the user for some information
while, if the script is run through cron, you might instead want to
run with a set of defaults.



While this isn't the most straightforward thing to do, a set of
commands can be concocted to determine when a script is run through
cron. In order to do this, we need to first recognize that all
scripts run by cron have one characteristic in common -- they have
the same "grandparent" process. Let's quickly examine why this is
the case.



The parent process of any script run through cron is the process
the cron daemon spawns to run the script. To test this, you could
put a script like this in your crontab file:



-------------------------- cut here --------------------------
#!/bin/bash

echo $PPID >> /tmp/ppids
-------------------------- cut here --------------------------


Then add the script to your crontab file:

* * * * * /export/home/bin/test-cron


What you will notice after a few minutes is that each line in your
/tmp/ppids file will contain a different process ID. In other words,
each running of the script has a different parent process. In
addition, each of these processes only exists while the cron job is
being run.


2406
2411
2416


The variable $PPID, available in bash and ksh, has a counterpart in
ps output. The PPID column in "ps -ef" output contains the parent
process ID for each listed process. For our purposes, we can limit
the ps output that we are going to process by using the -o option.
The command "ps -ef -o ppid,pid" will list ONLY process IDs and
parent process IDs (i.e., PIDs and PPIDs).



For an example, the following command will print the parent of the
mountd process. The response to this command will almost always be
"1" (/etc/init).



ps -ef -o ppid,pid | grep " `pgrep -x mountd$`$" | awk '{print $1}'


Sign up for ITworld's Daily newsletter
Follow ITworld on Twitter @IT_world

I like it!
Post a comment
The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
peer-to-peer

Esther Schindler
If the comments are ugly, the code is ugly

claird
SVG a graphics format for 21st century

pasmith
Take Chrome OS for a test spin

Sandra Henry-Stocker
Solaris Tip: Have Your Files Changed Since Installation?

sjvn
64-bits of protection?

jfruh
Android fragments vs. the iPhone monolith

mikelgan
What Gizmodo missed about the Pro WX Wireless USB disk drive

 

Sidekick: The Good News & the Bad News
Either way you look at it Microsoft Data Center management did not follow standards or best practices in this failure. In which case it makes me wonder more about the outsourcing of corporate data much less personal data.
- mburton325

Join the conversation here

The Daily Tip

The Daily TipQuick, practical advice for IT pros. Made fresh daily.

Hot tips:

Want to cash in on your IT savvy? Send your tip to tips@itworld.com. If we post it, we'll send you a $25 Amazon e-gift card.

Newsletters

Subscribe to ITWORLD TODAY and receive the latest IT news and analysis.

I would like to receive offers via email from ITworld partners.
By clicking submit you agree to the terms and conditions outlined in ITworld's privacy policy.
Featured Sponsor

AISO founders envisioned a Web hosting company that was environmentally friendly. While the company employed energy-efficient innovations like solar panels, its infrastructure produced unacceptable power and cooling requirements. Find out how AISO leveraged AMD technology to overcome their challenge in this case study white paper.

In this whitepaper, Scalar explores the opportunity to change the landscape with respect to mission critical databases built around Oracle. Leveraging technologies such as Linux, high-end commodity processing power and Oracle RAC technology to architect, design, build and maintain database infrastructure that delivers maximum availability, reliability and performance at a fraction of traditional cost.

On a typical day, weather.com, the Web site for The Weather Channel in Atlanta, serves up between 15 million and 20 million page views. But in September 2004, when back-to-back hurricanes ransacked Florida, the peak traffic on one day more than tripled: over 70 million page views by more than 7 million unique visitors. Read the full success story now.

Marketplace