4

I’m trying to execute a binary file created by PyInstaller from a python code from crontab. I have tried to insert many lines by using “crontab -e” but the binary file was not executed.

Example of the crontab commands I have tried:

* */12 * * * Path/dist/BinaryFile > LogFile.txt
* */12 * * * open Path/dist/BinaryFile > LogFile.txt
* */12 * * * root Path/dist/BinaryFile > LogFile.txt
* */12 * * * root open Path/dist/BinaryFile > LogFile.txt

Do you have any idea on how to execute this binary file? I’m trying to execute those command on Ubuntu 16.04 VPS server.

Thank you in advance for your help and sorry for my English.

terdon
  • 100,812
ZikoCpp
  • 49
  • 1
  • 4

1 Answers1

17

Use an absolute path:

* */12 * * * /Path/dist/BinaryFile > LogFile.txt

In addition, the file has to be executable. This can be done with chmod +x /Path/dist/BinaryFile.

Note that the time is probably not what you want, but it will run just fine.

terdon
  • 100,812
vidarlo
  • 22,691
  • Don't forget to redirect stderr too: * */12 * * * /Path/dist/BinaryFile > LogFile.txt 2>&1 Otherwise, you can fill up mail with errors. – Monty Harder Feb 19 '19 at 18:00
  • Hello, I have tried this and also tried the following command (* /12 * * root /bin/chmod +x /root/program/dist/BinaryFile > LogFile.txt 2>&1) but the program is still not running. the problem is not in the binary because it's working fine when i click on (i use a gui in my vps). thank you in advance – ZikoCpp Feb 19 '19 at 19:37
  • Yes of course. And for testing the program i'm using a command that must make the program execute every 5 minutes (Ex: # /5 * * * chmod +x /root/follow-back/dist/FollowBack > FollowBackLog.txt) – ZikoCpp Feb 19 '19 at 20:33
  • @ZikoCpp /bin/chmod +x /root/program/dist/BinaryFile doesn't run the file, it changes its permissions. You need to do that once if the file isn't already executable, but the line in your crontab should just include the /root/follow-back/dist/FollowBack > FollowBackLog.txt part as stated in this answer. Also, you realize that the # at the beginning of the line you pasted there disables its execution, right? – Kevin Feb 19 '19 at 20:49
  • hello, i already tried (/root/follow-back/dist/FollowBack > FollowBackLog.txt) but i'm using # in those commands. should i remove them (it's the first time i'm trying to use crontab). – ZikoCpp Feb 19 '19 at 20:52
  • 2
    @ZikoCpp Yes, # starts a comment, so cron ignores that line. Specifically, "Lines whose first non-space character is a pound-sign (#) are comments, and are ignored." src – Kevin Feb 19 '19 at 20:57
  • Ok, i will try this and will be back soon – ZikoCpp Feb 19 '19 at 21:00
  • It's working know. thank you very much Kevin and vidarlo for help. – ZikoCpp Feb 19 '19 at 21:01