[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: crontab programming. bug?



Thanks for yuor effort.

Found the same thing and since I'm working on a temporary file, I'm just
*setting* st_mtime++. works as well :)

cheers, tobias.

On Thu, 30 May 2002, Walt Mankowski wrote:

> On Thu, May 30, 2002 at 11:44:00AM +0200, Tobias Ulbricht wrote:
> >
> > please cc. to me up5a@stud.uni-karlsruhe.de
> >
> > Hi.
> >
> > I had the stupid idea to set
> > EDITOR=my-prog
> > and execute
> > crontab -e
> > to be able to "edit" crontabs in the right way, i.e. without touching the
> > crontab-files directly but with my own "editor" (here a
> > cron-gui-interface)
> >
> > 1. this doesn't work, since my c-program returns too quickly or too slow,
> > anyway crontab *seldomly* "installs" the new file, mostly says it "didn't
> > change".
> >
> > 2. I tried it with "vi" as editor and if I was fast enough to enter ":wq",
> > crontab doesn't install it.
> > (ok. i didn't change a thing but the file was written, accessed, whatever
> > and crontab should be installed. if you do it slowly, crontab installs
> > it.)
> > root@abh-304:/home# crontab -e
> > crontab: installing new crontab
> > root@abh-304:/home# crontab -e
> > crontab: no changes made to crontab
> >
> > second time I was fast enough typing ":wq"
> >
> > 3. Anyway: any recommendations how to modify crontab from a c-program
> > without messing with crontabs/user files?
> > I know gcrontab accesses them directly. but I thought this shouldn't be
> > dnoe.
>
> A quick glance at the crontab source code (apt-get source cron, then
> look in crontab.c) turned up the following lines:
>
> 	if (mtime == statbuf.st_mtime) {
> 		fprintf(stderr, "%s: no changes made to crontab\n",
> 			ProgramName);
> 		goto remove;
> 	}
> 	fprintf(stderr, "%s: installing new crontab\n", ProgramName);
>
> Basically what it's doing is saving the modification time of the file
> you're about to edit, then sending it off to the editor, then checking
> the new modification time of the file.  The granularity of st_mtime is
> in seconds.  This normally wouldn't be a problem for humans (except
> for *really* fast typists :-) but it's possible your program is
> updating it faster than that.
>
> Try sleeping for a second before exiting and see if that fixes the
> problem.
>
> Walt
>
>


-- 
To UNSUBSCRIBE, email to debian-user-request@lists.debian.org 
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org



Reply to: