在启动时自动运行Python脚本 - Ubuntu 16.04

时间:2018-05-29 10:12:13

标签: python linux ubuntu cron

我在Ubuntu 16.04.1上,我有一个python脚本从网站下载图像文件,代码如下:

import sys
import os
import time
import json
import shlex, subprocess
import signal
import random

R = 0
r = 0

targets = ['192.0.78.13', '134.109.133.7', '216.58.212.227', '54.246.159.107', '185.60.216.35', '98.136.103.24']

if __name__ == "__main__":
    while True:
        cmd = 'wget -A pdf,jpg,png -m -p -E -k -K -np --delete-after '
        R = random.randint(0,5)
        cmd += targets[R]

        args = shlex.split(cmd)
        p = subprocess.Popen(args, shell=False)

        time.sleep(2.0)
        # killing all processes in the group
        os.kill(p.pid, signal.SIGTERM)
        if p.poll() is None:  # Force kill if process
            os.kill(p.pid, signal.SIGKILL)
        r = random.randint(3,20)
        time.sleep(r-1)

它与命令“python webaccess.py”运行完美,现在我想在后台启动时自动运行它。 我尝试了两种方法,但所有方法都失败了(脚本没有运行):

  1. 使用crontab在此处使用指南:Run Python script at startup in Ubuntu
  2.   

    @reboot python /bin/web1.py& amp;

    1. 使用以下指南编辑rc.local:https://askubuntu.com/questions/817011/run-python-script-on-os-boot
    2.   

      python /bin/web1.py& amp;

      有什么方法可以解决这个问题吗?

      提前谢谢。

1 个答案:

答案 0 :(得分:0)

您的rc.local方法应该可以使用,请使用完整的python路径进行检查。如果那是默认的/ usr / bin / python / use / bin / python your_file_py

您还说过,您已验证python webaccess.py确实从脚本文件夹外部进行了验证。 还要注意rc.local中的脚本是由root执行的 所以从根号#

检查path_to_python python_file