通过 python 中的 cronjob 启动一个恶魔



我正在尝试通过cronjob调用一个deamon进程,可以使用以下命令调用

root@ip:/home/web/path_to_directory# python api/api_daemon.py start

我尝试了以下方法

 import os
    os.system("/usr/bin/python /home/web/path_to_directory/api/api_daemon.py start")

import os
os.system("python /home/web/path_to_directory/api/api_daemon.py start")
import os
os.system("python api/api_daemon.py start")#works on shell and when triggered manually 

编辑 1基本上,我正在使用cron作业来检查进程是否正在运行,如果进程未运行,则只会调用进程。

def process_check():
      process_list = ['api_daemon.py']
      for process in process_list:
             processname =  'python api/'+process+' start'
             #print processname
             tmp = os.popen("ps -Af").read()
             proccount = tmp.count(processname)
             message1 =  'processes running of %s' % (processname)
             print proccount
             #proccount = -2
             if not proccount > 0 :
                   logging.info('status file stopped')
                   send_msg(process)  # to notify process has been restarted
                   run_process()
def run_process():
    import os
    os.system("chdir /home/web/path_to_directory && python api/api_daemon.py start")

通过 cronjob process_check()被调用

如果你的api_daemon.py scrpt 依赖于 /home/web/path_to_directory 中的某个模块,你必须首先将该目录添加到 path 或 chdir 添加到该目录。

话虽如此,您可以尝试调用命令:

chdir /home/web/path_to_directory && python api/api_daemon.py start

在您的 crontab 文件中。这将首先转到项目的目录,然后启动api_daemon

最新更新