bash script works when interactive, endless loop when started via cron
Linux - GeneralThis Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
bash script works when interactive, endless loop when started via cron
Hi,
I use the following within a homebrew backup script to loop until a tape has been loaded:
Code:
while [ `mt-st -f /dev/nst0 status | grep -c "ONLINE"` != 1 ]; do
sleep 30m
done
Works like a charm when the script is run manually in a terminal. When started via cron however, the loop condition is never met. I can verify that the tape drive is online from an independent session, yet every 30 minutes a new instance of sleep is spawned instead of the script carrying on.
cron is set to run the script once a week, by simply invoking the name of the script with a fully-qualified path, without any stdout/stderr redirection.
Have you tried it with the full paths to mt-st and grep? If your cron uses a different path to your shell account it may not find the commands and the code in the backticks will never return a '1'.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.