Если твой второй скрипт не реализует никакого АПИ позволяющего вызывать функции внутри скрипта - то никак, это надо делать по другому, как? Не достаточно информации о преследуемых тобой целях.
Jairman, ты можешь во втором скрипте сделать обработчик сигналов https://docs.python.org/3/library/signal.html
Привязать свою функцию с завершением выполнения кода на signal.SIGTERM
И потом, взависимости от того, запущен ли твой скрипт как чайлд процесс или как стэндэлон процесс либо делать os.kill(<тут пид процесса>, signal.SIGTERM) либо your_child_process.send_signal(signal.SIGTERM)
import signal
import os
import time
def shutdown():
with open('/var/run/myscipt.pid') as f:
pid = int(f.read())
print('Terminating process with pid %d' % pid)
os.kill(pid, signal.SIGTERM)
if __name__ == '__main__':
shutdown()
script2.py
import signal
import sys
import time
import signal
import os
def signal_handler(signum, frame):
print('exiting')
sys.exit(0)
signal.signal(signal.SIGTERM, signal_handler)
with open('/var/run/myscipt.pid', 'w') as f:
f.write(str(os.getpid()))
while True:
print('ok')
time.sleep(1)
javedimka, А как можно браузер selenium закрыть? Просто у меня основной код через selenium в браузере работает, а при завершении через sys.exit() браузер не закрывается, пробовал driver.quit(), но не помогло
javedimka, я понял в чём проблема: функция signal_handler не выполняется обычно, так как она работает в исключениях, программа просто останавливается. Как сделать, чтобы функция с какими-то моими действиями исполнялась всегда?