Erik Erik - 1 year ago 134
Python Question

@reboot cronjob not executing

I have a Python script which simply writes some text and saves it to a file

#! /usr/bin/python3
def main():
filename = '/home/user/testHello.txt'
openfile = open(filename,"w")
print("Hello CRON", file = openfile)
if __name__ == "__main__":

I want to execute this script at startup via CRON. So I edit the crontab listing by using

>crontab -e

My entire crontab looks like :

SHELL = /bin/bash
PATH = /sbin:/bin:/usr/sbin:/usr/bin
MAILTO = root
HOME = /
# run-parts
1 * * * * /home/user/
@reboot /home/user/

This is the location of the file, and the file has permissions to execute. I can run the file no problem as a script from the commandline. Yet when I restart the machine, no file is generated. I am trying to understand why, and played around with the crontab entry.

@reboot /usr/bin/python3 /home/user/

This didn't work either.


ps aux | grep crond

gives me

user 2259 0.0 0.0. 9436 948 pts/0 S+ 23:39 0:00 grep --color=auto crond

I am unsure how to check if crond is running, or if the user in question is mounted before/after CRON. I'll try with:

sudo crontab -e

but that hasn't worked either.


pgrep cron

returns 957

Answer Source

Mark Roberts pointed out a few things I'd done wrong.

Namely, the spaces here

MAIL = root
HOME = /

Get rid of those spaces..

Next, having Cron configuration fixed to email every minute.. instead of what I had :

*/1 * * * * /home/user/

Seems to me Lubuntu doesn't support the @Reboot Cron syntax.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download