LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Software (http://www.linuxquestions.org/questions/linux-software-2/)
-   -   cron job not running (http://www.linuxquestions.org/questions/linux-software-2/cron-job-not-running-215844/)

vincebs 08-10-2004 12:05 PM

cron job not running
 
Hi everyone,

I want my computer to shut itself down at 1am everyday. So what I did was type "su -c 'crontab -e'" and added in the line:

Code:

0 1 * * * init 0
Then I restarted crond by typing "/etc/init.d/crond restart". To test it, I reset my clock to 12:55am and rebooted. But when the hour rolled over, nothing happened.

I tried different things like adding quotation marks to "init 0", putting the full path ("/sbin/init 0"), and using an alternative command ("shutdown -h now"), but to no avail.

What am I doing wrong?

Thanks,

Vince

david_ross 08-10-2004 12:45 PM

Try creating a log file to test:
0 1 * * * init 0 2>&1 > /tmp/shutdown.log

Do you get anything in the log when it is supposed to run?

vincebs 08-13-2004 03:54 PM

No, apparently it doesn't even run because when I type "cat /tmp/shutdown.log", the file hasn't even been created.

michaelk 08-13-2004 04:17 PM

Have you tried
/sbin/halt
or
/sbin/poweroff
Instead of init 0

david_ross 08-14-2004 06:29 AM

If that doesn't work it would be interesting to see if your cron jobs are even being run - try this one for example:
0 1 * * * date 2>&1 > /tmp/cron-test.log

Do you see the correct date and time in the log file? ie - 1:30

wmartino 08-14-2004 11:12 AM

You might try creating an empty log file first. Sometomes it will not create the file for you. Try this and see if it works.

Code:

touch /tmp/cron-test.log > /dev/null

vincebs 08-23-2004 10:32 PM

So I added the line "29 23 * * * date 2>&1 > /tmp/shutdown.log" to my crontab file, restarted crond, and made sure that I typed "touch shutdown.log" before 23:29. But yet nothing shows up in /tmp/shutdown.log.

Any more ideas?

Thanks,
Vince

P.S. Hurray, my 400th post!

david_ross 08-24-2004 08:24 AM

What procedure did you use to add it to your crontab file?

vincebs 08-24-2004 01:48 PM

su
crontab -e
<edit>
crontab -l (to verify)
/etc/init.d/crond restart

vincebs 09-01-2004 12:23 PM

bump

nitin_batta 09-01-2004 12:35 PM

Hey just a simple test to verify whether your crond is runninig

do

<code>#su -
#touch /root/cron_test
#crontab -e

and add the following job :

0,5,10,15,20,25,30,35,40,45,50,55 * * * * date >> /root/cron_test</code>

After saving the file just verify crontab -l and also there is no need restart crond it will rebuilt its files again.

This is only a test script and will put the output of date command in /root/cron_test after 5 mins every hour.

Remember to remove it once you have tested it.



.... Nitin Batta ....
http://nitinb.blogspot.com

__________________
If this helped you, please take the time to rate the value of this post by clicking the affero button

sjspig 09-03-2004 01:18 AM

Not sure if this is it, but make sure that the init file is in the path that cron is using to run. It does not run with the full path that your user account runs as. It also runs as the user for which the cron job was created - you will likely have to be root to run this cron job as it is written.

Put the full path to init - probably /sbin/init or /usr/sbin/init - It is common that the path that cron uses is very minimal unless you specify path as a variable in cron:

PATH = /usr/sbin:/sbin:/bin:/usr/bin.....etc...

vincebs 09-06-2004 12:49 PM

Quote:

Originally posted by nitin_batta
Hey just a simple test to verify whether your crond is runninig

do

<code>#su -
#touch /root/cron_test
#crontab -e

and add the following job :

0,5,10,15,20,25,30,35,40,45,50,55 * * * * date >> /root/cron_test</code>

After saving the file just verify crontab -l and also there is no need restart crond it will rebuilt its files again.

This is only a test script and will put the output of date command in /root/cron_test after 5 mins every hour.

Looks like cron works here. But I can't figure out why it won't load "init 0"

Quote:

Originally posted by sjspig
Put the full path to init - probably /sbin/init or /usr/sbin/init - It is common that the path that cron uses is very minimal unless you specify path as a variable in cron
Answer:
Quote:

Originally posted by vincebs
I tried different things like adding quotation marks to "init 0", putting the full path ("/sbin/init 0"), and using an alternative command ("shutdown -h now"), but to no avail.
So I have to be root in order for the cron job to run? I don't feel comfortable leaving my Internet-connected computer running as root all the time...

There's no other way to schedule a shutdown?

nitin_batta 09-06-2004 01:07 PM

Shutdown has execute permissions generally for only for the root.

Quote:

So I have to be root in order for the cron job to run? I don't feel comfortable leaving my Internet-connected computer running as root all the time...

So you will set the shutdown as a cronjob for root.

When you set a cronjob as any user you need not be logged in as that user for the job to run .... so its to set shutdown as a cronjob for root.

#which shutdown
/usr/bin/shutdown (Dummy O/p)

so u'r crontab would be

#crontab -e
0 1 * * * /usr/bin/shutdown -h now

vincebs 09-07-2004 04:43 PM

That's what I did originally but it didn't work.

I made sure that I su'ed before typing crontab -e. But nothing seems to happen unless I'm logged in as root.


All times are GMT -5. The time now is 04:22 PM.