skip to Main Content

I’m trying to run and kill site.py python script every 5 minutes using webreset.py script.

webreset.py:

from psutil import Process, Popen
from time import sleep
pid = 0
while True:
    if pid:
        Process(pid).terminate()
    process = Popen('python3 site.py')
    pid = process.pid
    sleep(300)

But when I run webreset.py on Ubuntu 20.04, I get the following Error:

Traceback (most recent call last):
  File "webreset.py", line 7, in <module>
    process = Popen('python3 site.py')
  File "/usr/local/lib/python3.8/dist-packages/psutil/__init__.py", line 1316, in __init__
    self.__subproc = subprocess.Popen(*args, **kwargs)
  File "/usr/lib/python3.8/subprocess.py", line 858, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.8/subprocess.py", line 1704, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'python3 site.py'

I run the script using this command :

sudo python3 webreset.py

2

Answers


  1. Chosen as BEST ANSWER

    using this:

    Popen(['python3', 'site.py'])
    

    instead of:

    process = Popen('python3 site.py')
    

    fixed my problem.


  2. You need to separate the command and arguments.

    process = Popen(['python3', 'site.py'])
    

    Otherwise it is looking for a command with the filename "python3 site.py"

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search