mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
43 lines
1.3 KiB
Python
Executable File
43 lines
1.3 KiB
Python
Executable File
# Part of Hibou Suite Professional. See LICENSE_PROFESSIONAL file for full copyright and licensing details.
|
|
|
|
import psutil
|
|
import os
|
|
import signal
|
|
import sys
|
|
|
|
# once upon a time
|
|
# we tried to find 'odoo' and 'python'
|
|
# but sometimes, it would be something like "/usr/local/bin/...."
|
|
# so we now just try not to signal/kill 'node'
|
|
PID = 1
|
|
PNAME = 'node'
|
|
KILL_OTHER = sys.argv[1] == 'KILL_OTHER' if len(sys.argv) >= 2 else False
|
|
if KILL_OTHER:
|
|
print('Will find other Odoo Processes and Kill them.')
|
|
|
|
is_foreground = False
|
|
foreground_name = ''
|
|
for proc in psutil.process_iter():
|
|
try:
|
|
process_name = proc.name()
|
|
process_id = proc.pid
|
|
print('Inspecting %s:%s' % (process_id, process_name))
|
|
if process_id == PID:
|
|
is_foreground = process_name != PNAME
|
|
foreground_name = process_name
|
|
if not KILL_OTHER:
|
|
break
|
|
if process_id != PID and KILL_OTHER and process_name != PNAME:
|
|
print('Killing %s:%s' % (process_id, process_name))
|
|
os.kill(process_id, signal.SIGKILL)
|
|
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
|
|
pass
|
|
|
|
if not is_foreground:
|
|
print('Odoo is not the foreground process.')
|
|
exit(-1)
|
|
|
|
print('Signalling reload to foreground process "%s"' % (foreground_name, ))
|
|
os.kill(PID, signal.SIGHUP)
|
|
|