When the python script crashes, the program is not running anymore, therefore the script cannot execute more lines of code.
You have 2 options:
- Make sure your python script doesn’t crash, which is very much recommended. You can do this by handling the exceptions thrown by your program.
Option 1
I assume you are new to python, so here is an example of a python script that handles an exception calls the same function again.
from time import sleep
def run_forever():
try:
# Create infinite loop to simulate whatever is running
# in your program
while True:
print("Hello!")
sleep(10)
# Simulate an exception which would crash your program
# if you don't handle it!
raise Exception("Error simulated!")
except Exception:
print("Something crashed your program. Let's restart it")
run_forever() # Careful.. recursive behavior
# Recommended to do this instead
handle_exception()
def handle_exception():
# code here
pass
run_forever()
- If you want to restart the python script you would need another python script (assuming you want to do this with python) that checks if the process is still alive and if not then run it again with python.
Option 2
This is the script that starts another python script called ‘test.py’ via the command python test.py
.
Make sure you have the right file path, if you put the scripts in the same folder, you usually don’t need the full path and only the script name.
Notably, make sure that command ‘python‘ is recognized by your system, it could in some cases by ‘python3’
script_starter.py
from subprocess import run
from time import sleep
# Path and name to the script you are trying to start
file_path = "test.py"
restart_timer = 2
def start_script():
try:
# Make sure 'python' command is available
run("python "+file_path, check=True)
except:
# Script crashed, lets restart it!
handle_crash()
def handle_crash():
sleep(restart_timer) # Restarts the script after 2 seconds
start_script()
start_script()
In case you are interested in the code I used for the test file: ‘test.py’, I post it here.
test.py
from time import sleep
while True:
sleep(1)
print("Hello")
raise Exception("Hello")
Decorator is a good approach.
from functools import wraps
import time
class retry:
def __init__(self, success=lambda r:True, times=3, delay=1, raiseexception=True, echo=True):
self.success = success
self.times = times
self.raiseexception = raiseexception
self.echo = echo
self.delay = delay
def retry(fun, *args, success=lambda r:True, times=3, delay=1, raiseexception=True, echo=True, **kwargs):
ex = Exception(f"{fun} failed.")
r = None
for i in range(times):
if i > 0:
time.sleep(delay*2**(i-1))
try:
r = fun(*args, **kwargs)
s = success(r)
except Exception as e:
s = False
ex = e
# raise e
if not s:
continue
return r
else:
if echo:
print(f"{fun} failed.", "args:", args, kwargs, "nresult: %s"%r)
if raiseexception:
raise ex
def __call__(self, fun):
@wraps(fun)
def wraper(*args, retry=0, **kwargs):
retry = retry if retry>0 else self.times
return self.__class__.retry(fun, *args,
success=self.success,
times=retry,
delay=self.delay,
raiseexception = self.raiseexception,
echo = self.echo,
**kwargs)
return wraper
some usage examples:
@retry(success=lambda x:x>3, times=4, delay=0.1)
def rf1(x=[]):
x.append(1)
print(x)
return len(x)
> rf1()
[1]
[1, 1]
[1, 1, 1]
[1, 1, 1, 1]
4
@retry(success=lambda x:x>3, times=4, delay=0.1)
def rf2(l=[], v=1):
l.append(v)
print(l)
assert len(l)>4
return len(l)
> rf2(v=2, retry=10) #overwite times=4
[2]
[2, 2]
[2, 2, 2]
[2, 2, 2, 2]
[2, 2, 2, 2, 2]
5
> retry.retry(lambda a,b:a+b, 1, 2, times=2)
3
> retry.retry(lambda a,b:a+b, 1, "2", times=2)
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Decorator is a good approach.
from functools import wraps
import time
class retry:
def __init__(self, success=lambda r:True, times=3, delay=1, raiseexception=True, echo=True):
self.success = success
self.times = times
self.raiseexception = raiseexception
self.echo = echo
self.delay = delay
def retry(fun, *args, success=lambda r:True, times=3, delay=1, raiseexception=True, echo=True, **kwargs):
ex = Exception(f"{fun} failed.")
r = None
for i in range(times):
if i > 0:
time.sleep(delay*2**(i-1))
try:
r = fun(*args, **kwargs)
s = success(r)
except Exception as e:
s = False
ex = e
# raise e
if not s:
continue
return r
else:
if echo:
print(f"{fun} failed.", "args:", args, kwargs, "nresult: %s"%r)
if raiseexception:
raise ex
def __call__(self, fun):
@wraps(fun)
def wraper(*args, retry=0, **kwargs):
retry = retry if retry>0 else self.times
return self.__class__.retry(fun, *args,
success=self.success,
times=retry,
delay=self.delay,
raiseexception = self.raiseexception,
echo = self.echo,
**kwargs)
return wraper
some usage examples:
@retry(success=lambda x:x>3, times=4, delay=0.1)
def rf1(x=[]):
x.append(1)
print(x)
return len(x)
> rf1()
[1]
[1, 1]
[1, 1, 1]
[1, 1, 1, 1]
4
@retry(success=lambda x:x>3, times=4, delay=0.1)
def rf2(l=[], v=1):
l.append(v)
print(l)
assert len(l)>4
return len(l)
> rf2(v=2, retry=10) #overwite times=4
[2]
[2, 2]
[2, 2, 2]
[2, 2, 2, 2]
[2, 2, 2, 2, 2]
5
> retry.retry(lambda a,b:a+b, 1, 2, times=2)
3
> retry.retry(lambda a,b:a+b, 1, "2", times=2)
TypeError: unsupported operand type(s) for +: 'int' and 'str'
How do you make a python program automatically restart itself? So let’s say there is a really simple program like:
var = input("Hi! I like cheese! Do you like cheese?").lower()
if var == "yes":
print("That's awesome!")
Now, in a Python Shell, you would have to press either the Run button and then ‘Run Module (F5)’ or just the F5 key on your keyboard. That is the first time you run it. When the program ended, you would go back to your Cheese.py
file and then press F5 to run the program again.
Everybody with me here?
OK, so my question is, how do you make the program restart itself automatically without you having to manually do it?
martineau
117k25 gold badges161 silver badges290 bronze badges
asked Mar 15, 2016 at 17:42
3
It depends on what you mean by «restart itself.» If you just want to continuously execute the same code, you can wrap it in a function, then call it from within a while True
loop, such as:
>>> def like_cheese():
... var = input("Hi! I like cheese! Do you like cheese?").lower() # Corrected the call to `.lower`.
... if var == "yes":
... print("That's awesome!")
...
>>> while True:
... like_cheese()
...
Hi! I like cheese! Do you like cheese?yes
That's awesome!
Hi! I like cheese! Do you like cheese?yes
That's awesome!
If you want to actually restart the script you can execute the script again, replacing the current process with the new one by doing the following:
#! /bin/env python3
import os
import sys
def like_cheese():
var = input("Hi! I like cheese! Do you like cheese?").lower()
if var == "yes":
print("That's awesome!")
if __name__ == '__main__':
like_cheese()
os.execv(__file__, sys.argv) # Run a new iteration of the current script, providing any command line args from the current iteration.
This will continuously re-run the script, providing the command line arguments from the current version to the new version. A more detailed discussion of this method can be found in the post «Restarting a Python Script Within Itself» by Petr Zemek.
One item that this article notes is:
If you use the solution above, please bear in mind that the
exec*()
functions cause the current process to be replaced immediately,
without flushing opened file objects. Therefore, if you have any
opened files at the time of restarting the script, you should flush
them usingf.flush()
oros.fsync(fd)
before calling anexec*()
function.
answered Mar 15, 2016 at 17:55
DeaconDeacon
3,5151 gold badge29 silver badges52 bronze badges
1
or you can try
$ chmod a+x "name".py
Then, you can run the script via
$ ./daemon.py
In such a situation, to restart the script, use the following code:
os.execv(__file__, sys.argv)
Otherwise, when you run the script via
$ python daemon.py
use this code:
os.execv(sys.executable, ['python'] + sys.argv)
Either way, do not forget to import the sys module
L_J
2,29510 gold badges24 silver badges28 bronze badges
answered Jul 14, 2018 at 16:32
0
I use terminal on my Mac to re-start some of my python scripts with the function below.
import subprocess
def run_again(cmd):
subprocess.call(["bash", "-c", "source ~/.profile; " + cmd])
Note: Don’t forget the space character after «profile;» or the function may fail silently!
Then at the bottom of my script to be re-started:
if some_condition:
run_again("python my_script.py %s" % my_new_arguments)
For the original question about the cheese script:
if var != 'yes':
run_again("python my_cheese_script.py")
answered Oct 13, 2017 at 18:13
exbctelexbctel
1951 silver badge9 bronze badges
You can just use a shell script like test.sh and make sure in your linux terminal you chmod +x test.sh
As for the code:
#!/bin/bash
while :
do
sleep 5
gnome-terminal --wait -- sh -c "python3 myscript.py 'myarg1'"
done
answered Nov 17, 2020 at 20:46
ChrisChris
17.3k15 gold badges57 silver badges76 bronze badges
You can wrap something in while True:
to make it execute repeatedly, as True
will always evaluate to True
, like this:
while True:
var = input("Hi! I like cheese! Do you like cheese?").lower() # <-- You had missed parentheses here
if var == "yes":
print("That's awesome!")
There’s another issue with your code though; you haven’t called lower
by putting parentheses after it.
answered Mar 15, 2016 at 17:44
7
How do you make a python program automatically restart itself? So let’s say there is a really simple program like:
var = input("Hi! I like cheese! Do you like cheese?").lower()
if var == "yes":
print("That's awesome!")
Now, in a Python Shell, you would have to press either the Run button and then ‘Run Module (F5)’ or just the F5 key on your keyboard. That is the first time you run it. When the program ended, you would go back to your Cheese.py
file and then press F5 to run the program again.
Everybody with me here?
OK, so my question is, how do you make the program restart itself automatically without you having to manually do it?
martineau
117k25 gold badges161 silver badges290 bronze badges
asked Mar 15, 2016 at 17:42
3
It depends on what you mean by «restart itself.» If you just want to continuously execute the same code, you can wrap it in a function, then call it from within a while True
loop, such as:
>>> def like_cheese():
... var = input("Hi! I like cheese! Do you like cheese?").lower() # Corrected the call to `.lower`.
... if var == "yes":
... print("That's awesome!")
...
>>> while True:
... like_cheese()
...
Hi! I like cheese! Do you like cheese?yes
That's awesome!
Hi! I like cheese! Do you like cheese?yes
That's awesome!
If you want to actually restart the script you can execute the script again, replacing the current process with the new one by doing the following:
#! /bin/env python3
import os
import sys
def like_cheese():
var = input("Hi! I like cheese! Do you like cheese?").lower()
if var == "yes":
print("That's awesome!")
if __name__ == '__main__':
like_cheese()
os.execv(__file__, sys.argv) # Run a new iteration of the current script, providing any command line args from the current iteration.
This will continuously re-run the script, providing the command line arguments from the current version to the new version. A more detailed discussion of this method can be found in the post «Restarting a Python Script Within Itself» by Petr Zemek.
One item that this article notes is:
If you use the solution above, please bear in mind that the
exec*()
functions cause the current process to be replaced immediately,
without flushing opened file objects. Therefore, if you have any
opened files at the time of restarting the script, you should flush
them usingf.flush()
oros.fsync(fd)
before calling anexec*()
function.
answered Mar 15, 2016 at 17:55
DeaconDeacon
3,5151 gold badge29 silver badges52 bronze badges
1
or you can try
$ chmod a+x "name".py
Then, you can run the script via
$ ./daemon.py
In such a situation, to restart the script, use the following code:
os.execv(__file__, sys.argv)
Otherwise, when you run the script via
$ python daemon.py
use this code:
os.execv(sys.executable, ['python'] + sys.argv)
Either way, do not forget to import the sys module
L_J
2,29510 gold badges24 silver badges28 bronze badges
answered Jul 14, 2018 at 16:32
0
I use terminal on my Mac to re-start some of my python scripts with the function below.
import subprocess
def run_again(cmd):
subprocess.call(["bash", "-c", "source ~/.profile; " + cmd])
Note: Don’t forget the space character after «profile;» or the function may fail silently!
Then at the bottom of my script to be re-started:
if some_condition:
run_again("python my_script.py %s" % my_new_arguments)
For the original question about the cheese script:
if var != 'yes':
run_again("python my_cheese_script.py")
answered Oct 13, 2017 at 18:13
exbctelexbctel
1951 silver badge9 bronze badges
You can just use a shell script like test.sh and make sure in your linux terminal you chmod +x test.sh
As for the code:
#!/bin/bash
while :
do
sleep 5
gnome-terminal --wait -- sh -c "python3 myscript.py 'myarg1'"
done
answered Nov 17, 2020 at 20:46
ChrisChris
17.3k15 gold badges57 silver badges76 bronze badges
You can wrap something in while True:
to make it execute repeatedly, as True
will always evaluate to True
, like this:
while True:
var = input("Hi! I like cheese! Do you like cheese?").lower() # <-- You had missed parentheses here
if var == "yes":
print("That's awesome!")
There’s another issue with your code though; you haven’t called lower
by putting parentheses after it.
answered Mar 15, 2016 at 17:44
7
I am running my Python script in the background in my Ubuntu machine (12.04) like this —
nohup python testing.py > test.out &
Now, it might be possible that at some stage my above Python script
can die for whatever reason.
So I am thinking to have some sort of cron agent
in bash shell script which can restart my above Python script automatically if it is killed for whatever reason.
Is this possible to do? If yes, then what’s the best way to solve these kind of problem?
UPDATE:
After creating the testing.conf
file like this —
chdir /tekooz
exec python testing.py
respawn
I ran below sudo command to start it but I cannot see that process running behind using ps ax?
root@bx13:/bezook# sudo start testing
testing start/running, process 27794
root@bx13:/bezook# ps ax | grep testing.py
27806 pts/3 S+ 0:00 grep --color=auto testing.py
Any idea why px ax is not showing me anything? And how do I check whether my program is running or not?
This is my python script —
#!/usr/bin/python
while True:
print "Hello World"
time.sleep(5)
asked Jan 5, 2014 at 7:33
arsenalarsenal
2,96317 gold badges43 silver badges49 bronze badges
On Ubuntu (until 14.04, 16.04 and later use systemd) can use upstart to do so, better than a cron job. You put a config setup in /etc/init
and make sure you specify respawn
It could be a minimal file /etc/init/testing.conf
(edit as root
):
chdir /your/base/directory
exec python testing.py
respawn
And you can test with /your/base/directory/testing.py
:
from __future__ import print_function
import time
with open('/var/tmp/testing.log', 'a') as fp:
print(time.time(), 'done', file=fp)
time.sleep(3)
and start with:
sudo start testing
and follow what happens (in another window) with:
tail -f /var/tmp/testing.log
and stop with:
sudo stop testing
You can also add [start on][2]
to have the command start on boot of the system.
answered Jan 5, 2014 at 7:59
ZeldaZelda
5,9901 gold badge20 silver badges27 bronze badges
6
You could also take a more shell oriented approach. Have your cron
look for your script and relaunch it if it dies.
-
Create a new crontab by running
crontab -e
. This will bring up a window of your favorite text editor. -
Add this line to the file that just opened
*/5 * * * * pgrep -f testing.py || nohup python /home/you/scripts/testing.py > test.out
-
Save the file and exit the editor.
You just created a new crontab
which will be run every 5 minutes and launch your script unless it is already running. See here for a nice little tutorial on cron
. The official Ubuntu docs on cron
are here.
The actual command being run is pgrep
which searches running processes for the string given in the command line. pgrep foo
will search for a program named foo
and return its process identifier. pgrep -f
makes it search the entire command line used to launch the program and not only the program name (useful because this is a python script).
The ||
symbol means «do this if the previous command failed». So, if your script is not running, the pgrep
will fail since it will find nothing and your script will be launched.
answered Jan 5, 2014 at 9:24
terdon♦terdon
227k62 gold badges426 silver badges636 bronze badges
14
You shouldn’t really use this for production, but you could:
#!/bin/sh
while true; do
nohup python testing.py >> test.out
done &
If, for any reason, python process exits, the shell loop will continue and restart it, appending to the .out
file as desired. Nearly no overhead and takes very little time to set up.
answered Jan 5, 2014 at 12:17
K3—rncK3—rnc
3,0341 gold badge16 silver badges9 bronze badges
You can have the testing program redirect the output using a commandline option
and then use a simple python script to restart the program indefinitely:
import subprocess
while True:
try:
print subprocess.check_output(['python', 'testing.py'])
except KeyboardInterrupt:
break
you can put this program in the background, and once you want to stop just pull it into the foreground and kill it.
answered Jan 5, 2014 at 8:16
AnthonAnthon
77k42 gold badges159 silver badges217 bronze badges
There are a number of ways to monitor and respawn processes under UNIX/Linux. One of the oldest is a «respawn» entry in /etc/inittab … if you’re using the old SysV init system. Another method is to use the supervisor daemon from DJ Bernstein’s daemontools package. Other options are to use features in Ubuntu upstart … or systemd or others.
But you can look at alternatives init and in the Python code for Pardus: mudur daemon in particular.
If you decide to go with a cron job (and PID file handling) then consider reading this PEP 3143 and perhaps using its reference implementation.
As I alluded to in my other comments, robust PID file handling is tricky. It’s prone to races and corner cases. It gets trickier if there’s any chance that your PID file ends up on an NFS or other networked filesystem (some of the atomicity guarantees you get with the file handling semantics on proper local UNIX/Linux filesystems go away on some versions and implementations of NFS, for example). Also the semantics around file locking under UNIX can be tricky. (Does an flock
or fcntl
lock get released promptly, in your target OS, when the process holding it is killed with SIGKILL, for example?).
answered Jan 5, 2014 at 7:58
Jim DennisJim Dennis
6002 silver badges11 bronze badges
You can also use monit Or Process monitoring with ps-watcher
Monit is an open source utility for managing and monitoring,
processes, programs, files, directories and filesystems on a UNIX
system. Monit conducts automatic maintenance and repair and can
execute meaningful causal actions in error situations.
Here is example for your scenario:
check process myprocessname
matching "myprocessname"
start program = "nohup /usr/bin/python /path/testing.py > /tmp/test.out &"
stop program = "/usr/bin/killall myprocessname"
Take look at monit examples
answered Jan 5, 2014 at 9:43
Rahul PatilRahul Patil
23.6k25 gold badges79 silver badges95 bronze badges
You need a supervisor, you can use supervisor. It is python based supervisor, therefore easy to modify if you need to.
Control is with files with .ini file syntax.
answered Jan 5, 2014 at 10:59
user41123user41123
1942 silver badges6 bronze badges
Terdon’s answer, did not work for me, because
pgrep -f testing.py
was never ‘failing’. It would grab the pid for the cron job (because of the -f option). However, without the -f option pgrep won’t find testing.py because there’s no process called testing.py.
My solution to this was to change
pgrep -f testing.py
to
pgrep -f testing.py | pgrep python
this means the full crontab job would be:
*/5 * * * * pgrep -f testing.py | pgrep python || nohup python /home/you/scripts/testing.py > test.out
answered Jun 15, 2017 at 20:00
In my case, as a quick-fix, I wanted to keep my program running when it exited with en error or it was killed.
On the other hand, I wanted to stop the execution when the program terminated correctly (return code = 0)
I have tested it on Bash. It should work fine in any other shell
#!/bin/sh
echo ""
echo "Use: $0 ./instagram.py"
echo ""
echo "Executing $1 ..."
EXIT_CODE=1
(while [ $EXIT_CODE -gt 0 ]; do
$1
# loops on error code: greater-than 0
EXIT_CODE=$?
done)
answered Dec 27, 2018 at 12:53
For terdon’s answer, pgrep -f testing.py
will never return false according to the comments in here:
I think the issue is that cron spawns a shell to run your command, and the arguments of that shell are matched by pgrep since you are using -f
For Matt’s answer, pgrep -f testing.py
is useless since pgrep python
matches any running Python script. So if two Python script cronjob, the second cronjob will never run.
And then I found the solution to solve pgrep -f testing.py
in the comment here: https://askubuntu.com/questions/1014559/running-pgrep-in-a-crontab?noredirect=1&lq=1
My cron for running two Python scripts:
* * * * * pgrep -f '^/usr/bin/python36 /home/ec2-user/myscript1.py' || nohup /usr/bin/python36 /home/ec2-user/myscript1.py
0 * * * * pgrep -f '^/usr/bin/python36 /home/ec2-user/myscript2.py' || nohup /usr/bin/python36 /home/ec2-user/myscript2.py
Rui F Ribeiro
54.8k26 gold badges144 silver badges221 bronze badges
answered Mar 8, 2019 at 19:28
FrankFrank
1012 bronze badges
In Ubuntu this works for me thanks to --wait
#!/bin/bash
while :
do
sleep 5
gnome-terminal --wait -- sh -c "python3 myscript.py 'myarg1'"
done
answered Nov 17, 2020 at 20:44
ChrisChris
1011 bronze badge
There’s a Python module for that, forever.
The advantage being, hopefully, in using the same language for both the code and the watchdog. If it needs to be improved, one can find it in
cd $(python -c "import site; print(site.getusersitepackages())")
I’d install it with
python -mpip install --user --upgrade forever
and later use it with
python -mforever.run -t 9 -i 9 python script-to-watch.py
answered Feb 12, 2022 at 12:06
1
Джоуи 1073 / 635 / 240 Регистрация: 05.05.2015 Сообщений: 3,546 Записей в блоге: 2 |
|
1 |
|
Автоматически перезапускать скрипт05.07.2021, 16:29. Показов 6849. Ответов 14
Как контролировать постоянно работающий скрипт, чтобы при вылетах его перезапускать? Как вариант, можно даже перезапускать скрипт просто по времени, например, каждые 3 часа Добавлено через 14 секунд
0 |
Matrix3007 194 / 160 / 41 Регистрация: 13.05.2019 Сообщений: 828 |
||||
05.07.2021, 16:37 |
2 |
|||
1 |
Джоуи 1073 / 635 / 240 Регистрация: 05.05.2015 Сообщений: 3,546 Записей в блоге: 2 |
|
05.07.2021, 17:18 [ТС] |
3 |
А os.system() автоматически перезапускает скрипт? Или ты советуешь в отдельном скрипте реализовать и запуск, и закрытие основного скрипта, с интервалом в нужное время?
0 |
194 / 160 / 41 Регистрация: 13.05.2019 Сообщений: 828 |
|
05.07.2021, 17:35 |
4 |
Joey, os.system() это вополнение команды в консоли. Если запускать нужно экзешник, то можно как-то на пид процесса ориентироваться, если нет, то хз.
0 |
Джоуи 1073 / 635 / 240 Регистрация: 05.05.2015 Сообщений: 3,546 Записей в блоге: 2 |
|
05.07.2021, 17:54 [ТС] |
5 |
Видимо мы не поняли друг друга, мне нужно, чтобы после ошибки мой скрипт на питоне не стоял как вкопанный, а перезапускался
0 |
194 / 160 / 41 Регистрация: 13.05.2019 Сообщений: 828 |
|
05.07.2021, 17:57 |
6 |
Joey, А обработка исключений на что?
0 |
Джоуи 1073 / 635 / 240 Регистрация: 05.05.2015 Сообщений: 3,546 Записей в блоге: 2 |
|
06.07.2021, 22:01 [ТС] |
7 |
С потоками не умею еще
0 |
5403 / 3827 / 1214 Регистрация: 28.10.2013 Сообщений: 9,554 Записей в блоге: 1 |
|
07.07.2021, 02:00 |
8 |
после ошибки мой скрипт на питоне не стоял как вкопанный, Он у тебя должен упасть после ошибки (без обработки исключений). Каким образом он «стоит»? Так не бывает.
1 |
3692 / 2275 / 491 Регистрация: 07.11.2019 Сообщений: 3,835 |
|
07.07.2021, 06:16 |
9 |
Подойдет решение со сторонним софтом Можно из приложения сделать службу с автоматическим перезапуском после сбоя. См. https://nssm.cc/
1 |
Джоуи 1073 / 635 / 240 Регистрация: 05.05.2015 Сообщений: 3,546 Записей в блоге: 2 |
|
07.07.2021, 09:31 [ТС] |
10 |
Каким образом он «стоит»? Так не бывает. Глупость сморозил, запускаю скрипт в Wing и оставляю, когда проверяю, иногда стоит ошибка о разрыве сети (скрипт работает с сокетами)
Чтобы он не падал, нужно обрабатывать все исключения и писать логику для всех ожидаемых ошибок. В питоне слаб, просто пришлось чужую прогу под себя доделывать
0 |
5403 / 3827 / 1214 Регистрация: 28.10.2013 Сообщений: 9,554 Записей в блоге: 1 |
|
07.07.2021, 13:00 |
11 |
скрипт работает с сокетами Ну дак покажи кусок кода с запуском прослушивания сокетов.
0 |
IamHacker -59 / 0 / 0 Регистрация: 11.06.2021 Сообщений: 49 |
||||
07.07.2021, 19:05 |
12 |
|||
Здравствуйте, рассмотрев все ответы могу впринципе доработать и сделать чуть чуть подругому:
0 |
Джоуи 1073 / 635 / 240 Регистрация: 05.05.2015 Сообщений: 3,546 Записей в блоге: 2 |
|
16.07.2021, 15:22 [ТС] |
13 |
Сообщение было отмечено Рыжий Лис как решение РешениеРешил задачу супервизором Supervisord, всем спасибо
0 |
Модератор 1352 / 649 / 207 Регистрация: 23.03.2014 Сообщений: 3,053 |
|
16.07.2021, 18:01 |
14 |
Joey, кодом поделитесь?
0 |
Joey Джоуи 1073 / 635 / 240 Регистрация: 05.05.2015 Сообщений: 3,546 Записей в блоге: 2 |
||||
21.07.2021, 10:48 [ТС] |
15 |
|||
Это не код. Есть такая прога supervisord, устанавливается просто
висит на порте :9001
1 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
21.07.2021, 10:48 |
Помогаю со студенческими работами здесь ГуглХром автоматически запускается и периодически открывает рекламные вкладки, AutoLogger не выполняет скрипт Нужен скрипт, который c правами админа в профилях пользователей автоматически собирает их email-ы Нужен ява-скрипт, который бы заставлял кнопку сабмит нажиматься автоматически через 3 сек. Нужен ява-скрипт, который бы заставлял кнопку сабмит нажиматься… Как не перезапускать программу? Приходится перезапускать проводник Создайте скрипт, который бы автоматически выводил дату создания файла определенного формата. Для jpeg файлов, независимо Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 15 |