1

I've got a cronjob that runs every minute and checks existence of a certain file. If there's no such file, job silently ends. If there is a file, then another script is started. That script removes the file when done. Its execution time can take up to 20 minutes.

My questions are: Are there any flaws in this scheme? Is it ok to store such file in tmp? Can I be shure that nothing will attempt to remove it?


Thanks for replies!

This scheme purpose is to allow to run that script through the web interface. Script itself is in user's home folder and works on its contents. I'm not sure if creating pid files in /var/run is appropriate.

2
  • Is the purpose of this scheme to have one copy of the second process running and to ensure that the second process is run almost continuously ?
    – user9517
    Jun 1, 2010 at 15:22
  • If you just want to make sure that that file is always deleted ASAP, you may be better off using inotify.
    – intuited
    Jun 1, 2010 at 15:44

4 Answers 4

2

I guess you speak of a Linux system. If you did not set up anything to clean up /tmp, it will not be done automatically. The only exception is when you reboot the system - most Linux distros clean up /tmp at reboot. Of course you can search for the script that does the celan up and you can disable it if this is a concern

1
  • 2
    Fedora/Redhat install tmpwatch by default which clears files from /tmp after 10 days and /var/tmp after 30 days. Debian/Ubuntu do it at reboot.
    – James
    Jun 1, 2010 at 16:57
3

First... I think your job may run up to 20 times if you 'remove the file when done'. From what you're saying the file should be moved/removed once it's detected.

A similar question is asked here.

1

As along as you're checking to make sure that your file-processing script isn't already running, then you should be fine. /tmp is fine for this sort of thing, unless you're experiencing random reboots, and that's a pretty big problem on it's own.

1

You may want to look at the hier man page. This kind of flag is often found in /var/run. You should use a marker file for both processes to prevent multiple processing scripts from running.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .